Гид по технологиям

Uninstall-Package не работает в PowerShell: что делать

4 min read PowerShell Обновлено 04 Dec 2025
Uninstall-Package не работает в PowerShell
Uninstall-Package не работает в PowerShell

Ошибка: Uninstall-Package не работает — окно PowerShell

В Windows есть несколько способов удалить приложения. Многие пользователи сообщают, что Uninstall-Package или похожие команды не работают в PowerShell. Эти команды позволяют удалять даже встроенные системные приложения, поэтому когда они не работают, вы не сможете корректно «раздеблоутить» Windows или удалить проблемный софт.

Ниже — проверенные шаги и альтернативы, которые помогают вернуть контроль над установленными пакетами.

Быстрые шаги для принудительного удаления программы

  1. Запустите PowerShell от имени администратора.
  2. Получите список Appx-пакетов: Get-AppxPackage
  3. Удалите пакет: Remove-AppxPackage

Пример: команда Remove-AppxPackage в PowerShell

Важно: для системных приложений иногда потребуется использовать System-счёт или запустить удаление для всех пользователей с опцией -AllUsers (при наличии у пакета соответствующих прав).

Что делать, если Uninstall-Package не работает в PowerShell

1. Используйте cmdlet Uninstall-Package и WMI/Win32_Product

  1. Откройте PowerShell с правами администратора.
  2. Получите список программ с помощью WMI:
Get-WmiObject -Class Win32_Product | Select-Object -Property Name

Список всех приложений в PowerShell

  1. Сопоставьте переменную с приложением (пример):
$MyApp = Get-WmiObject -Class Win32_Product | Where-Object{$_.Name -eq "Free Tools"}
  1. Вызовите метод удаления:
$MyApp.Uninstall()

Если приложение не отображается в Win32_Product, используйте Get-Package с провайдером Programs:

Get-Package -Provider Programs -IncludeWindowsInstaller -Name "Camera"

Затем можно вызвать Uninstall-Package -Name "Camera" (или эквивалентный cmdlet) в зависимости от результата поиска.

Примечание: Win32_Product может инициировать переустановку MSI-пакетов при обращении к классу. Используйте его осмотрительно на серверах и в продакшн-средах.

2. Альтернативная команда: чтение строки удаления из реестра и запуск msiexec

Это продвинутый метод. Потребуются права администратора и базовое знание PowerShell. Суть — найти UninstallString в реестре и запустить msiexec для MSI-пакетов.

$uninstall32 = gci "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -match "SOFTWARE NAME" } | select UninstallString
$uninstall64 = gci "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -match "SOFTWARE NAME" } | select UninstallString

if ($uninstall64) {
  $uninstall64 = $uninstall64.UninstallString -Replace "msiexec.exe","" -Replace "/I","" -Replace "/X",""
  $uninstall64 = $uninstall64.Trim()
  Write "Uninstalling..."
  start-process "msiexec.exe" -arg "/X $uninstall64 /qb" -Wait
}

if ($uninstall32) {
  $uninstall32 = $uninstall32.UninstallString -Replace "msiexec.exe","" -Replace "/I","" -Replace "/X",""
  $uninstall32 = $uninstall32.Trim()
  Write "Uninstalling..."
  start-process "msiexec.exe" -arg "/X $uninstall32 /qb" -Wait
}

Закройте PowerShell после завершения. Вы также можете сохранить этот набор команд в .ps1 и запускать как скрипт для автоматизации.

Важно: команда ищет по вхождению “SOFTWARE NAME” — замените шаблон на точное имя или часть имени программы.

Когда описанные методы не помогут

  • Встроенные системные приложения могут быть защищены: вы увидите сообщение «This app is part of Windows and cannot be uninstalled on a per-user basis». Удаление таких приложений может нарушить систему.
  • Если приложение оставляет следы в реестре или файлах, простое удаление пакета не удалит остаточные данные.
  • Установщики, отличные от MSI (например, NSIS или инсталляторы с собственным движком), могут не предоставлять UninstallString в ожидаемом виде.

Альтернативные подходы

  • Используйте официальный деинсталлятор приложения или раздел «Приложения и возможности» в Параметрах Windows.
  • Воспользуйтесь специальными утилитами для удаления (Revo Uninstaller, IObit Uninstaller) — они анализируют остаточные файлы и реестр.
  • Если нужно удалить Appx-пакеты, используйте Remove-AppxPackage для текущего пользователя или Remove-AppxProvisionedPackage для образа/всех пользователей.
  • Для корпоративных сред применяйте Intune/Configuration Manager для управления удалениями централизованно.

Мини-методика: безопасный порядок действий

  1. Снимите точку восстановления системы (рекомендуется) или создайте образ системы.
  2. Запустите PowerShell от имени администратора.
  3. Попробуйте Get-AppxPackage / Remove-AppxPackage для Appx.
  4. Ищите пакет через Get-Package или Get-WmiObject.
  5. Если это MSI, найдите UninstallString и запустите msiexec с ключом /X.
  6. Проверьте остаточные файлы в Program Files и HKLM/HKCU\Software.
  7. При сомнениях откатите систему.

Чек-листы по ролям

Администратор:

  • Запустить PowerShell с правами администратора.
  • Проверить наличия пакета в системных провайдерах (Get-Package, Win32_Product).
  • Делать резервную копию реестра перед массовыми изменениями.

Пользователь:

  • Попробовать удалить через Параметры → Приложения.
  • Перезагрузить систему и повторить удаление.

Инженер поддержки:

  • Собрать логи удаления и строку UninstallString.
  • Рекомендовать восстановление системы, если удаление нарушило зависимости.

Безопасность и риски

  • Не удаляйте системные компоненты, если не уверены в последствиях. Это может повлечь нестабильность или потерю функций.
  • Используйте Win32_Product аккуратно: обращение к нему может инициировать повторную проверку и ремонт MSI-пакетов.

Краткий глоссарий

  • Appx: формат приложений UWP/Store в Windows.
  • MSI: пакет установки Microsoft Installer.
  • UninstallString: строка удаления, записанная в реестре для деинсталляции.

Резюме

Если Uninstall-Package не работает, действуйте по шагам: запустите PowerShell как администратор, найдите пакет через Get-AppxPackage, Get-Package или Win32_Product, и используйте Remove-AppxPackage или запуск msiexec через UninstallString. Для встроенных системных приложений удаление может быть ограничено и рисковано.

Важно: если после всех действий проблема остаётся, проверьте нашу статью по восстановлению работы PowerShell или оставьте комментарий ниже — ваш фидбэк помогает улучшать инструкции.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство