Удаление программы из командной строки
Получаем список установленных программ:
wmic product get name
Удаление с подтверждением:
wmic product where name="name of program" call uninstall
Тихое удаление без подтверждения:
wmic product where name="name of program" call uninstall /nointeractive
Однако, этот способ следует использовать остожно. Если софт требует перезагрузки, то она пройдет бе предупреждения. Чтобы избежать перезагрузи, в скрипт можно добавить shutdown /a
Удаление из PowerShell с помощью штатного .msi
Вместо XXXX подставляем название программы Этот способ полезен, если после установки нужно избежать перезагрузки. Тут для msiexec.exe можно указать /norestart.
$product = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "XXXX"} $AppGUID = $product.properties["IdentifyingNumber"].value.toString() MsiExec.exe /norestart /q/x $AppGUID REMOVE=ALL
Удаление с помощью штатных инсталляционных пакетов
К сожалению, удаление с помощью wmic работает медленно. Быстрее можно удалить с помощью штатных инсталляционных пакетов. Для начала - получаем список софта из реестра:
reg query "HKLM\Software\Microsoft\Windows\Currentversion\Uninstall" /s /v DisplayName
Фильтруем по названию:
reg query "HKLM\Software\Microsoft\Windows\Currentversion\Uninstall" /s /v DisplayName | find "Citrix"
Запрашиваем команду для удаления:
reg query "HKLM\Software\Microsoft\Windows\Currentversion\Uninstall" /s /v UninstallString
Discussion