В некоторых случаях установленные в Windows программы не удается удалить стандартными средствами, будь то через панель Settings -> Apps -> Installed Apps (команда быстрого доступа
ms-settings:appsfeatures
), классическую панель удаления программ
appwiz.cpl
или из командной строки (PowerShell). Причиной этого может оказаться поврежденный или удаленный установщик программы, некорректные записи в реестре или другие повреждения в конфигурации. В этой статье мы рассмотрим, как принудительно удалить установленную в Windows программу, которую не удается удалить штатными средствами.
Поврежден/удален установочный MSI файл программы
В моем случае я столкнулся с невозможностью удалить установленный на компьютере MSI клиент Zoom. При попытке выполнить операцию Uninstall из списка установленных программ Windows из панели Settings, появилась ошибка Windows Installer о том, что установочный MSI файл приложения не найден:
The path to *.msi cannot be found. Vierify you have access to this location and try again, or try to find the installation package in a folder from which you can install the product.

The installation source for this product is not available. Verify that the source exists and that you can access it.

При установке приложения через установщик Windows Installer, установочный MSI пакет сохраняется в директорию
%windir%\Installer
. В дальнейшем, установщик Windows будет использовать этот MSI инсталлятор в качестве источника при удалении/исправлении/изменении приложения.
Список установлены MSI программ и соответствующих им MSI файлах в каталоге C:\Windows\Installer можно вывести таким скриптом PowerShell (в значении LocalPackage будет указана кэшированная версия установочного MSI файла):
$installer = New-Object -ComObject WindowsInstaller.Installer
$products = $installer.ProductsEx("", "", 7)
$result = foreach ($p in $products) {
[pscustomobject]@{
ProductName = $p.InstallProperty("ProductName")
ProductCode = $p.ProductCode()
LocalPackage = $p.InstallProperty("LocalPackage")
}
}
$result | Sort-Object ProductName | Format-Table -AutoSize

%windir%\Installer
нельзя очищать вручную, т.к. она хранит копии MSI инсталляторов приложений, а также файлы обновлений MSP и MST файлы с параметрами установки Windows Installer.Windows Installer при установке программ добавляет записи для их корректного удаления приложения в одну из веток реестра (в зависимости от разрядности приложения, и установлено ли она для всех или только для текущего пользователя):
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall HKLM\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Uninstall
Или
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall HKCU\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Uninstall
Такие записи приложения в реестре можно найти вручную (путем перебора вложенных веток и поиска по имени программы в параметре DisplayName) и извлечь из значения параметра UninstallString команду для деинсталляций программы (см. статью про способы удаления программ в Windows из командной строки/PowerShell). Попробуйте запустить удаление приложения с помощью этой команды.

Если запись установленной программы в ветке реестра Uninstall повреждена (удалена), и оно не отображается в списке установленных программ в панели Settings -> Apps -> Installed Apps или в классической панели Uninstall or change a program (
appwiz.cpl
) можно попробовать вручную найти его установочный MSI файл в папке
%windir%\Installer
. Перейдите в этот каталог и включите отображение поля Subject в проводнике. Это позволит найти MSI файл приложения в этой директории.

Чтобы запустить стандартный мастер удаления программы, просто откройте командную строку и выполните команду:
msiexec /x "C:\WINDOWS\Installer\имя_файла.msi"

Если вы не нашли установочный MSI файл программы, которую вы хотите удалить в директории
%windir%\Installer
, попробуйте найти информацию о файле в ветке реестра
HKLM\software\classes\installer\products
. Проверьте значение в каждом разделе SourceList. Здесь будет указан как путь к каталогу (LastUsedSource), так и имя MSI файла (PackageName). Запустите этот MSI файл и выполните удаление программы.

Удаление программ с помощью Microsoft Program Install and Uninstall Troubleshooter
Если запись об установленный программе в реестре отсутствует, или поврежден MSI файл, при удалении приложения может появится, например, такая ошибка:
Error 1722: There is a problem with this Windows installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.

Попробуйте использовать официальное средство устранения неполадок — Microsoft Program Install and Uninstall Troubleshooter (
Средство устранения неполадок при установке и удалении программ
), который позволяет исправить типовые проблемы при удалении программ, включая поврежденные ключи реестра и зависимости (работает для приложений, установленных через MSI Installer; если у приложения собственный EXE установщик, это средство вряд ли поможет).
Запустите файл
Microsoft Program_Install_and_Uninstall.meta.diagcab
(в Windows 11 автономное средство удаления доступно в разделе Settings -> Troubleshoot -> Other Troubleshooters)

Укажите, что вы хотите удалить программу. Утилита выведет список приложений. Выберите приложение, которое нужно удалить. Затем утилита просканирует систему и попытается восстановить зависимости, очистить мусор, найти и запустить файл деинсталлятора.


Что еще попробовать, если предыдущие способы не помогли:
- Если не удалось найти кэшированный MSI пакет, скачайте с сайта вендора MSI установщик с той же самой версией программы, запустите файл и выполните удаление
- Проверьте, возможно, перед удалением программы нужно вручную завершить его запущенные процессы и/или службы (консоль services.msc)
- Перезагрузите компьютер в безопасном режиме и попробуйте деинсталлировать приложение (см. как запустить Windows Installer в безопасном режиме)
- Воспользуйтесь сторонними утилитами-деинсталляторами (учитывайте риски!). Например, GeekUninstaller или RevoUninstaller

