Esta guía detalla cómo desinstalar Soda PDF Desktop mediante objetos de directiva de grupo (GPO).
- Método 1: desinstale cada MSI individualmente
- Método 2: desinstalación de Soda PDF a través de PowerShell
Desinstalación de Soda PDF a través de GPO
Método 1: desinstalación de MSI por MSI
Para eliminar manualmente cada MSI:
- Abra el Editor de administración de directivas de grupo.
- Vaya a Instalación de software en Configuración del equipo -> Directivas.
- Haga clic con el botón derecho en cada MSI instalado y seleccione Todas las tareas -> Eliminar.
- Seleccione el método de eliminación y luego haga clic en Aceptar.
Repita para cada MSI instalado hasta que se desinstalen todos los módulos.
Método 2: desinstalación de Soda PDF a través de PowerShell
Use /uninstall=quiet para que las aplicaciones se desinstalen de forma silenciosa.
Ejemplo: para cmd
"C:\Datos del programa\Soda PDF Desktop 14\Instalación\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."