From ee0fc307bb97077094dd1926d0726d01d10fb292 Mon Sep 17 00:00:00 2001 From: uhlwoogi Date: Wed, 15 Apr 2026 10:48:36 +0000 Subject: [PATCH] Fix MSI temp path and constrain exe search to matching install directories Co-Authored-By: Claude Sonnet 4.6 --- 1-estudio-Install-TacticalRMM-and-RustDesk.ps1 | 9 +++++---- 2-estudio-Install-RustDesk-Standalone.ps1 | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/1-estudio-Install-TacticalRMM-and-RustDesk.ps1 b/1-estudio-Install-TacticalRMM-and-RustDesk.ps1 index 2356e5d..7a2cd84 100644 --- a/1-estudio-Install-TacticalRMM-and-RustDesk.ps1 +++ b/1-estudio-Install-TacticalRMM-and-RustDesk.ps1 @@ -24,7 +24,7 @@ $rustdeskService = 'ScoutIT-RemoteSupport' # ── Helper: Install RustDesk ────────────────────────────────────────────────── function Install-RustDesk { - $msiPath = "$env:TMP\$rustdeskMsi" + $msiPath = "$env:SystemRoot\Temp\$rustdeskMsi" # Download Write-Host "Downloading ScoutIT Remote Support client..." @@ -76,11 +76,12 @@ function Install-RustDesk { } } - # Second try: search Program Files and Program Files (x86) + # Second try: search only within directories whose name matches expected install folder if (-not $rustdeskExe) { - Write-Host "Searching for RustDesk exe in Program Files..." - $found = Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' -Recurse -Filter '*.exe' -ErrorAction SilentlyContinue | + Write-Host "Searching for RustDesk exe in matching install directories..." + $found = Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -match 'rustdesk|scoutit|remotesupport' } | + ForEach-Object { Get-ChildItem $_.FullName -Filter '*.exe' -ErrorAction SilentlyContinue } | Select-Object -First 1 if ($found) { $rustdeskExe = $found.FullName diff --git a/2-estudio-Install-RustDesk-Standalone.ps1 b/2-estudio-Install-RustDesk-Standalone.ps1 index 027d024..0635b06 100644 --- a/2-estudio-Install-RustDesk-Standalone.ps1 +++ b/2-estudio-Install-RustDesk-Standalone.ps1 @@ -17,7 +17,7 @@ if ($null -ne $svcCheck) { } # ── Download ────────────────────────────────────────────────────────────────── -$msiPath = "$env:TMP\$rustdeskMsi" +$msiPath = "$env:SystemRoot\Temp\$rustdeskMsi" Write-Host "Downloading ScoutIT Remote Support client..." Try { Invoke-WebRequest -Uri $rustdeskDl -OutFile $msiPath @@ -67,11 +67,12 @@ foreach ($key in $uninstallKeys) { } } -# Second try: search Program Files and Program Files (x86) +# Second try: search only within directories whose name matches expected install folder if (-not $rustdeskExe) { - Write-Host "Searching for RustDesk exe in Program Files..." - $found = Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' -Recurse -Filter '*.exe' -ErrorAction SilentlyContinue | + Write-Host "Searching for RustDesk exe in matching install directories..." + $found = Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -match 'rustdesk|scoutit|remotesupport' } | + ForEach-Object { Get-ChildItem $_.FullName -Filter '*.exe' -ErrorAction SilentlyContinue } | Select-Object -First 1 if ($found) { $rustdeskExe = $found.FullName