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:
co-authored by
Claude Sonnet 4.6
parent
97701505c3
commit
ee0fc307bb
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user