Questa guida descrive in dettaglio come disinstallare Soda PDF Desktop utilizzando gli oggetti Criteri di gruppo (GPO).
- Metodo 1 - Disinstallare ogni MSI singolarmente
- Metodo 2 - Disinstallazione di Soda PDF tramite PowerShell
Disinstallazione di Soda PDF tramite GPO
Metodo 1 - Disinstallazione MSI per MSI
Per rimuovere manualmente ogni MSI:
- Aprire l'Editor Gestione Criteri di gruppo.
- Passare a Installazione software in Configurazione computer -> Criteri.
- Fare clic con il pulsante destro del mouse su ciascun MSI installato e selezionare Tutte le attività -> Rimuovi.
- Scegliere il metodo di rimozione, quindi fare clic su OK.
Ripetere l'operazione per ogni MSI installato fino a quando tutti i moduli non vengono disinstallati.
Metodo 2 - Disinstallazione di Soda PDF tramite PowerShell
Usa /uninstall=quiet per disinstallare silenziosamente le applicazioni.
Esempio: per cmd
"C:\Dati programma\Soda PDF Desktop 14\Installazione\SodaPDFDesktop14.exe" /uninstall=quiet
# Define service name wildcard
$serviceWildcard = "Soda PDF Desktop*"
# Stopping and removing matching services
Write-Host "Stopping and removing services matching '$serviceWildcard'..."
# Get services matching the wildcard
$services = Get-Service | Where-Object { $_.DisplayName -like $serviceWildcard }
foreach ($service in $services) {
Write-Host "Stopping service: $($service.DisplayName)"
Stop-Service -Name $service.Name -Force -ErrorAction SilentlyContinue
Write-Host "Removing service: $($service.DisplayName)"
sc.exe delete $service.Name | Out-Null
}
Write-Host "Service cleanup complete."
# Fetch and process uninstall strings (as before)
$uninstall32 = Get-ChildItem "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" |
ForEach-Object { Get-ItemProperty $_.PSPath } |
Where-Object { $_.DisplayName -match "Soda PDF Desktop" } |
Select-Object -ExpandProperty UninstallString -ErrorAction SilentlyContinue
$uninstall64 = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" |
ForEach-Object { Get-ItemProperty $_.PSPath } |
Where-Object { $_.DisplayName -match "Soda PDF Desktop" } |
Select-Object -ExpandProperty UninstallString -ErrorAction SilentlyContinue
# 32-bit uninstallation
if ($uninstall32) {
Write-Host "Running 32-bit uninstaller silently..."
Start-Process -FilePath "C:\ProgramData\Soda PDF Desktop*\Installation\SodaPDFDesktop*.exe" `
-ArgumentList "/uninstall=quiet /norestart" -Wait
} else {
Write-Host "No 32-bit Soda PDF Desktop found."
}
# 64-bit uninstallation
if ($uninstall64) {
$uninstall64Commands = $uninstall64 -split "MsiExec.exe"
foreach ($command in $uninstall64Commands) {
$command = "MsiExec.exe " + $command.Trim()
if ($command -match "/X|/I") {
$arguments = ($command -replace "MsiExec.exe", "").Trim() + " /qn /norestart"
Write-Host "Running 64-bit uninstaller silently: MsiExec.exe $arguments"
Start-Process -FilePath "MsiExec.exe" -ArgumentList $arguments -Wait
}
}
} else {
Write-Host "No 64-bit Soda PDF Desktop found."
}
# Cleanup remaining folders using wildcards
Write-Host "Cleaning up leftover Soda PDF directories using wildcards..."
$foldersToClean = @(
"C:\Program Files\Soda PDF Desktop*",
"C:\Program Files (x86)\Soda PDF Desktop*",
"C:\ProgramData\Soda PDF Desktop*"
)
foreach ($folder in $foldersToClean) {
Get-ChildItem -Path $folder -Directory -ErrorAction SilentlyContinue | ForEach-Object {
if (Test-Path $_.FullName) {
Write-Host "Removing folder: $($_.FullName)"
Remove-Item -Path $_.FullName -Recurse -Force -ErrorAction SilentlyContinue
} else {
Write-Host "Folder not found: $($_.FullName)"
}
}
}
Write-Host "Cleanup complete."