Explicitly uninstall existing version before install to avoid MSI upgrade elevation failure
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
640567d03e
commit
eb0d4aaaf9
@@ -9,11 +9,26 @@ $rustdeskService = 'ScoutIT-RemoteSupport'
|
||||
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
|
||||
# ── Check if already installed ────────────────────────────────────────────────
|
||||
$svcCheck = Get-Service -Name $rustdeskService -ErrorAction SilentlyContinue
|
||||
if ($null -ne $svcCheck) {
|
||||
Write-Host "ScoutIT Remote Support is already installed. Exiting."
|
||||
exit 0
|
||||
# ── Uninstall any existing version first (prevents MSI upgrade elevation failure) ─
|
||||
$uninstallKeys = @(
|
||||
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
|
||||
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
|
||||
)
|
||||
foreach ($key in $uninstallKeys) {
|
||||
Get-ItemProperty $key -ErrorAction SilentlyContinue |
|
||||
Where-Object { $_.DisplayName -match 'ScoutIT-RemoteSupport|ScoutIT RemoteSupport|rustdesk' -or
|
||||
$_.Publisher -match 'scoutit|rustdesk' } |
|
||||
ForEach-Object {
|
||||
$productCode = $_.PSChildName
|
||||
Write-Host "Found existing install: $($_.DisplayName) [$productCode] - uninstalling..."
|
||||
# Stop the service first so MSI uninstall doesn't hang
|
||||
Stop-Service -Name $rustdeskService -Force -ErrorAction SilentlyContinue
|
||||
Start-Process -FilePath "msiexec.exe" `
|
||||
-ArgumentList "/x `"$productCode`" /qn /norestart" `
|
||||
-Wait
|
||||
Start-Sleep -Seconds 10
|
||||
Write-Host "Existing version removed."
|
||||
}
|
||||
}
|
||||
|
||||
# ── Download ──────────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user