Fix MSI temp path and constrain exe search to matching install directories

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
uhlwoogi
2026-04-15 10:48:36 +00:00
co-authored by Claude Sonnet 4.6
parent 97701505c3
commit ee0fc307bb
2 changed files with 10 additions and 8 deletions
@@ -24,7 +24,7 @@ $rustdeskService = 'ScoutIT-RemoteSupport'
# ── Helper: Install RustDesk ────────────────────────────────────────────────── # ── Helper: Install RustDesk ──────────────────────────────────────────────────
function Install-RustDesk { function Install-RustDesk {
$msiPath = "$env:TMP\$rustdeskMsi" $msiPath = "$env:SystemRoot\Temp\$rustdeskMsi"
# Download # Download
Write-Host "Downloading ScoutIT Remote Support client..." 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) { if (-not $rustdeskExe) {
Write-Host "Searching for RustDesk exe in Program Files..." Write-Host "Searching for RustDesk exe in matching install directories..."
$found = Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' -Recurse -Filter '*.exe' -ErrorAction SilentlyContinue | $found = Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' -Directory -ErrorAction SilentlyContinue |
Where-Object { $_.Name -match 'rustdesk|scoutit|remotesupport' } | Where-Object { $_.Name -match 'rustdesk|scoutit|remotesupport' } |
ForEach-Object { Get-ChildItem $_.FullName -Filter '*.exe' -ErrorAction SilentlyContinue } |
Select-Object -First 1 Select-Object -First 1
if ($found) { if ($found) {
$rustdeskExe = $found.FullName $rustdeskExe = $found.FullName
+5 -4
View File
@@ -17,7 +17,7 @@ if ($null -ne $svcCheck) {
} }
# ── Download ────────────────────────────────────────────────────────────────── # ── Download ──────────────────────────────────────────────────────────────────
$msiPath = "$env:TMP\$rustdeskMsi" $msiPath = "$env:SystemRoot\Temp\$rustdeskMsi"
Write-Host "Downloading ScoutIT Remote Support client..." Write-Host "Downloading ScoutIT Remote Support client..."
Try { Try {
Invoke-WebRequest -Uri $rustdeskDl -OutFile $msiPath 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) { if (-not $rustdeskExe) {
Write-Host "Searching for RustDesk exe in Program Files..." Write-Host "Searching for RustDesk exe in matching install directories..."
$found = Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' -Recurse -Filter '*.exe' -ErrorAction SilentlyContinue | $found = Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' -Directory -ErrorAction SilentlyContinue |
Where-Object { $_.Name -match 'rustdesk|scoutit|remotesupport' } | Where-Object { $_.Name -match 'rustdesk|scoutit|remotesupport' } |
ForEach-Object { Get-ChildItem $_.FullName -Filter '*.exe' -ErrorAction SilentlyContinue } |
Select-Object -First 1 Select-Object -First 1
if ($found) { if ($found) {
$rustdeskExe = $found.FullName $rustdeskExe = $found.FullName