Ce guide explique comment désinstaller Soda PDF Desktop en utilisant les objets de stratégie de groupe (GPO).
- Méthode 1 : Désinstaller chaque MSI individuellement
- Méthode 2 : Désinstallation de Soda PDF via PowerShell
Désinstallation de Soda PDF via GPO
Méthode 1 : Désinstallation MSI par MSI
Pour supprimer manuellement chaque MSI :
- Ouvrez Éditeur de Gestion des Stratégies de Groupe.
- Naviguez vers Installation de Logiciel sous Configuration de l'Ordinateur -> Stratégies.
- Faites un clic droit sur chaque MSI installé et sélectionnez Toutes les tâches -> Supprimer.
- Choisissez la méthode de suppression, puis cliquez sur OK.
Répétez ces étapes pour chaque MSI installé jusqu'à ce que tous les modules soient supprimés.
Méthode 2 : Désinstallation de Soda PDF via PowerShell
Utilisez /uninstall=quiet pour désinstaller les applications en mode silencieux.
Exemple : pour cmd
« C:\ProgramData\Soda PDF Desktop 14\Installation\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."