Как принудительно удалить программу, которая не удаляется штатно?

В некоторых случаях установленные в 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.

Не могу удалить программу - не найден установочный MSI файл

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

Ошибка: 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

Список программ и их MSI установщиков в папке C:\Windows\Installer

Именно поэтому папку %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). Попробуйте запустить удаление приложения с помощью этой команды.

Команда для удаления программы в параметр UninstallString реестра

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

Показать имена MSI программ в папке C:\windows\installer

Чтобы запустить стандартный мастер удаления программы, просто откройте командную строку и выполните команду:

msiexec /x "C:\WINDOWS\Installer\имя_файла.msi"

msiexec /x путь к msi файлу - запустить удаление программы через windows insatller

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

Информация об MSI установщиках в HKLM\software\classes\installer\products

Удаление программ с помощью 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.

Ошибка: Error 1722: There is a problem with this Windows installer package

Попробуйте использовать официальное средство устранения неполадок — Microsoft Program Install and Uninstall Troubleshooter ( Средство устранения неполадок при установке и удалении программ ), который позволяет исправить типовые проблемы при удалении программ, включая поврежденные ключи реестра и зависимости (работает для приложений, установленных через MSI Installer; если у приложения собственный EXE установщик, это средство вряд ли поможет).

Скачать Program Install and Uninstall Troubleshooter можно по ссылке.

Запустите файл Microsoft Program_Install_and_Uninstall.meta.diagcab (в Windows 11 автономное средство удаления доступно в разделе Settings -> Troubleshoot -> Other Troubleshooters)

Microsoft Program Install and Uninstall Troubleshooter

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

Выбрать программу, которую не удается удалить

Успешное удаление программы с помощью Program Install and Uninstall Troubleshooter

Что еще попробовать, если предыдущие способы не помогли:

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


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)