Table of Contents

Удаление программы из командной строки

Получаем список установленных программ:

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