Как удалить программы в командной строке или Windows PowerShell
На компьютеры, работающие под управлением Windows, пользователи устанавливают различные прикладные программы для выполнения тех или иных задач. Сразу после установки, в операционной системе доступны только базовые приложения.
Естественно, что этого недостаточно для выполнения многих видов деятельности на компьютере. Чтобы решить эту проблему, на ПК устанавливается дополнительное программное обеспечение.
Новые программы позволяют выполнять необходимые операции, делают работу более комфортной и продуктивной. Постепенно на компьютере оказывается установленными больное количество разных программ.
Часть приложений регулярно используется, другой софт задействован время от времени, а остальными программами не пользуются по разным причинам. Ненужные программы необходимо деинсталлировать с ПК, чтобы они не занимали место на дисковом пространстве или не влияли на производительность устройства.
Чтобы удалить программу с компьютера можно воспользоваться системными средствами Windows или сторонним программным обеспечением. Можно использовать любой из этих способов. Сторонние приложения-деинсталляторы имеют дополнительный функционал, это позволяет им более тщательно подчищать следы от удаленных программ на компьютере.
В этом руководстве мы рассмотрим один из способов деинсталляции ненужных приложений: удаление программы через командную строку и удаление программ через PowerShell.
Большей части пользователей удобнее использовать графический интерфейс средства удаления программ Windows или программы-деинсталлятора. Но, есть и другой метод решить эту задачу: удалить программу из PowerShell или из командной строки.
В некоторых случаях, может понадобиться в PowerShell удалить программу, или выполнить удаление программы с помощью командной строки, например, если удаление приложения обычным способом заканчивается неудачей. К сожалению, бывают такие ситуации, когда по разным причинам не происходит деинсталляция ненужного программного обеспечения.
В этих случаях, можно воспользоваться консолью или более мощным инструментом — Windows PowerShell. Удаление программ через командную строку Windows выполняется одинаково в разных версиях операционной системы: Windows 10, Windows 8.1 (Windows 8), Windows 7.
Необходимо учитывать, что в окнах консоли отображаются не все установленные программы, а только те, которые для инсталляции на ПК использовали установщик Windows (установочные пакеты «.msi» приложений Win32).
Сначала мы посмотрим, как удалить программу с помощью командной строки, а затем сделаем тоже самое в Windows PowerShell.
Как правильно удалять программы — стандартный способ
Если вы удалили программу по вышеописанному сценарию, сначала нужно попробовать вернуть удаленную папку. Это возможно только в случае, если удаление производилось при помощи нажатия клавиши «Delete» или путем выбора мышью пункта «Удалить» из выпадающего меню.
При удалении папок и файлов одним из этих способов они просто помещаются в корзину, которую можно найти на рабочем столе. Просто откройте ее, найдите нужную папку, кликните по ней правой кнопкой мыши и выберите из выпадающего меню пункт «Восстановить» (на изображении ниже папка имеет условное название):
Почему это важно? Все просто — в папке с приложением обычно размещается штатный деинсталлятор (вспомогательная программа для корректного удаления приложения). Запуск этого деинсталлятора позволит корректно удалить программу.
В зависимости от вашей ситуации выполните следующие действия:
- Если папку с программой удалось восстановить: войдите в нее, найдите штатный деинсталлятор и запустите его (обычно это файл с названием «Uninstall» или «Uninst»), например:
- Следуйте инструкциям деинсталлятора.
- Если папку не удалось восстановить или вы ее не удаляли и даже не знаете, где она находится: нажмите на клавиатуре комбинацию клавиш «Win + R», скопируйте без кавычек в открывшееся окошко команду control и нажмите «ОК»:
- Запустится приложение «Панель управления». Переключите режим просмотра в состояние «Категория» (правый верхний угол), затем перейдите в раздел «Удаление программы»:
- В открывшемся разделе вы увидите все программы, установленные на компьютере либо те, что были неправильно/некорректно удалены. Найдите среди них приложение, которое вы намереваетесь удалить, кликните по его значку правой кнопкой мыши и выберите пункт меню «Удалить».
- Если штатный деинсталлятор программы все еще существует на компьютере (в той папке, в которой он был размещен при установке), система запустит его. Просто следуйте дальнейшим инструкциям на экране.
- Если же штатного деинсталлятора более не существует, на экране отобразится соответствующее сообщение об ошибке.
Дальнейшие шаги не обязательны для выполнения при успешном удалении программы стандартным способом.
Удалить программу на удаленном компьютере с помощью PowerShell модуля Package Manager
В современных версиях Windows 10/11 и Windows Server 2022/2019/2016 для установки и удаления программ можно использовать командлеты из модуля PowerShell Package Management. Изначально модуль использовался для установки/удаления PowerShell модулей. Однако вы можете использовать его и для удаления Win32 программ, MSU обновлений, программ установленных помощью MSI установщиков.
Чтобы вывести полный список установленных программ на локальном компьютере, выполните команду:
Команда вернет несколько классов программ, установленных через разные провайдеры (ProviderName). Полный список доступных провайдеров на компьютере можно вывести так:
Чтобы вывести список программ, установленных с помощью определенного провайдера, выполните:
Get-Package -ProviderName Programs -IncludeWindowsInstaller
Для удаления программы нужно использовать командлет Uninstall-Package:
Get-Package -Name «Notepad++*» | Uninstall-Package
Можно удалить установленный PowerShell модуль. Например, чтобы удалить все модули VMware.PowerCLI:
Get-Package -ProviderName PowerShellGet -Name «VMware.*» | Uninstall-Package
Для удаления программы на удаленном компьютер, воспользуйтесь командлетом Invoke-Command:
Invoke-Command -ComputerName Msk-Ser01 -ScriptBlock
Данный модуль можно использовать только для удаления программ Win32 и модулей. Для удаления UWP программ Microsoft Store нужно использовать PowerShell командлеты Remove-AppxPackage и Remove-AppxProvisionedPackage (см. Пример в статье).
Установка
Просто скопируйте PsExec на путь к исполняемому файлу. При вводе PsExec отображается его синтаксис использования.
ознакомьтесь с разделом 2004 июля Windows ит Pro Magazine для получения статьи о пометке , посвященной расширенному использованию PsExec.
Использование:
Параметр | Описание |
---|---|
-a | Отдельные процессоры, на которых приложение может работать с запятыми, где 1 — это наименьший номер ЦП. Например, чтобы запустить приложение на ЦП 2 и ЦП 4, введите: «-a 2, 4» |
-c | Скопируйте указанный исполняемый файл в удаленную систему для выполнения. Если этот параметр не задан, приложение должно находиться в системном пути в удаленной системе. |
-d | Не дожидаться завершения процесса (не интерактивного). |
-e | Не загружает профиль указанной учетной записи. |
-f | Копирование указанной программы, даже если файл уже существует в удаленной системе. |
-i | Запустите программу, чтобы она взаимодействовала с рабочим столом указанного сеанса в удаленной системе. Если сеанс не указан, процесс выполняется в сеансе консоли. Этот флаг необходим при попытке запуска консольных приложений в интерактивном режиме (с перенаправленным СТАНДАРТным вводом-выводом). |
-h | Если целевая система находится в системе Vista или более поздней версии, процесс выполняется с маркером повышенной безопасности учетной записи, если он доступен. |
-l | Запустите процесс от имени ограниченного пользователя (поменяет группу администраторов и разрешает только привилегии, назначенные группе Пользователи). в Windows Vista процесс выполняется с низкой целостностью. |
-n | Указывает время ожидания в секундах при подключении к удаленным компьютерам. |
-p | Указывает необязательный пароль для имени пользователя. Если этот параметр не указан, будет предложено ввести скрытый пароль. |
-r | Указывает имя удаленной службы для создания или взаимодействия с. |
-s | Запустите удаленный процесс в системной учетной записи. |
-u | Указывает необязательное имя пользователя для входа на удаленный компьютер. |
-v | Скопируйте указанный файл только в том случае, если он имеет более высокий номер версии или более новый, чем тот, который находится в удаленной системе. |
-w | Задайте рабочий каталог процесса (относительно удаленного компьютера). |
-x | Отображение пользовательского интерфейса на безопасном рабочем столе Winlogon (только в локальной системе). |
— приоритет | Указывает-Low,-BelowNormal,-AboveNormal,-High или-реального времени для запуска процесса с другим приоритетом. Используйте-Background для запуска с нехваткой памяти и приоритетом ввода-вывода в Vista. |
компьютерами | Direct PsExec для запуска приложения на удаленном компьютере или указанных компьютерах. Если опустить имя компьютера, программа PsExec запустит приложение в локальной системе и при указании подстановочного знака ( *) программа PsExec выполнит команду на всех компьютерах в текущем домене. |
@file | PsExec выполнит команду на каждом из компьютеров, перечисленных в файле. |
cmd | Имя выполняемого приложения. |
даваемых | Аргументы для передачи (Обратите внимание, что пути к файлам должны быть абсолютными путями в целевой системе). |
-AcceptEula | Этот флаг подавляет отображение диалогового окна лицензии. |
Приложения, имена которых содержат пробелы, можно заключать в кавычки, например
Входные данные передаются в удаленную систему только при нажатии клавиши ВВОД. При нажатии клавиш CTRL + C удаленный процесс завершается.
Если не указать имя пользователя, процесс будет выполняться в контексте вашей учетной записи в удаленной системе, но не будет иметь доступа к сетевым ресурсам (так как это олицетворение). Укажите допустимое имя пользователя в DomainUser синтаксисе, если удаленный процесс требует доступа к сетевым ресурсам или для запуска в другой учетной записи. Обратите внимание, что пароль и команда шифруются при передаче в удаленную систему.
Коды ошибок, возвращаемые PsExec, относятся к выполняемым приложениям, а не PsExec.
Как включить учётную запись администратора
В моих тестах на последних Windows 10 и Windows Server 2019 команда PsExec работает только с учётной записью Администратор. Поэтому в этом разделе описано, как активировать пользователя Администратор, который по умолчанию присутствует в Windows, но в обычных, не серверных версиях, этот пользователь отключён.
Пользователя Администратор должен быть активен только на удалённом компьютере, где будут выполняться команды с помощью PsExec. На локальном компьютере учётная запись Администратор не требуется.
1. Нажмите клавиши Win+r, чтобы открыть окно запуска команды.
2. Введите lusrmgr.msc и нажмите Enter.
3. Откройте Пользователи.
4. Щёлкните правой кнопкой мыши Администратор и выберите Свойства.
5. Снимите флажок «Отключить учётную запись» и нажмите ОК.
6. Снова щёлкните правой кнопкой мыши учётную запись администратора и выберите «Задать пароль».
7. Укажите пароль для учётной записи администратора и нажмите «ОК».
Ashampoo Uninstaller
Ashampoo Uninstaller — еще один монстр деинсталляции, сопоставимый по набору возможностей классике жанра — Revo Uninstaller и IObit Uninstaller. Утилита очень функциональна и удобна, пользоваться ею — удовольствие, за которое однако придется заплатить. К сожалению, бесплатной версии Ashampoo Uninstaller не существует. Есть только 10-дневная пробная, срок действия которой можно продлить еще на 10 дней. Покупка лицензии обойдется в $20.
Сильная сторона Ashampoo Uninstaller — это возможность удаления не только классического ПО, но и браузерных плагинов, расширений, панелей и прочего мусора, который тормозит открытие веб-страниц и мешает комфортному серфингу сети. Находить такие объекты среди установленных программ довольно просто — у них, как правило, низкий пользовательский рейтинг.
Остальные функции и возможности Ashampoo Uninstaller:
- Улучшенный алгоритм нахождения остатков удаленных приложений.
- Ведение журналов установки ПО (для более полной очистки системы в случае его деинсталляции).
- Мониторинг активности процессов.
- Создание профилей даже тех программ, установка которых не была проконтролирована.
- Создание снапшотов (снимков состояния) системы с возможностью сравнивать их между собой.
- Удаление обновлений Windows.
- Отображение пользовательского рейтинга приложений для быстрого поиска неблагонадежных.
- Удобная классификация программного обеспечения по нескольким характеристикам: с плохим рейтингом, с журналом установки, большие, недавние, удаленные (на основе данных журнала).
- Отдельная группировка программ из магазина Windows и встроенных в систему (стандартных).
- Дополнительные инструменты: Чистильщик диска, Оптимизатор реестра, Чистильщик следов деятельности в Интернете, Ускоритель загрузки системы и ПО, Менеджер служб, Инструменты восстановления удаленных файлов и исправления файловых ассоциаций, Средство полного удаления конфиденциальных данных (шредер), Модуль управления резервными копиями.
В отличие от конкурентов, Ashampoo Uninstaller поддерживает только современные версии системы, начиная от Windows 7. На более старых выпусках его работа невозможна.
Способы старые, временем проверенные
Пожалуй, это первое, что приходит на ум, когда идет речь об удаленном запуске программ. Утилита от Марка Руссиновича используется еще со времен Windows NT и до сих пор применяется. Помимо основной функции, можно использовать ее и как Runas, и для запуска программ в пользовательской сессии терминального сервера. Psexec также позволяет задавать ядра процессора, на которых будет запускаться программа, и ее приоритет в системе.
В качестве примера посмотрим, установлено ли обновление, закрывающее нашумевшую уязвимость SMB на списке компьютеров:
В файле computers.txt находится список компьютеров. Для запуска по всему домену можно использовать \*. В файле \serversharelog.txt будут появляться имена рабочих станций или серверов без обновления. Если в домене существуют компьютеры с *nix на борту или нет доступа к административному сетевому ресурсу Admin$ ― команда на этой машине не выполнится, но обработка продолжится. Чтобы скрипт не зависал при каждой попытке подключения, можно задать тайм-аут с помощью ключа -n.
Если компьютер выключен ― мы об этом не узнаем. Поэтому лучше предварительно проверять доступность машин или собирать в файле информацию об успешном или неудачном выполнении.
К минусам Psexec можно отнести то, что она из-за своего удобства и популярности часто используется вирусописателями. Поэтому антивирусные системы могут обнаруживать утилиту как опасность вида remote admin.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего Psexec. При необходимости логин и пароль можно задать явно или же использовать аккаунт SYSTEM.
Для управления системами Windows с помощью разных графических утилит часто используется WMI (Windows Management Instrumentation) ― реализация объектно-ориентированного стандарта управления WBEM. В качестве утилиты с графическим интерфейсом для работы с WMI можно использовать wbemtest.exe.
Для работы с WMI из консоли создана wmic.exe. Например, для проверки установленных обновлений вместо жутковатой конструкции из предыдущего примера можно использовать простую команду:
Использовать список компьютеров также можно командой /node:»@computers.txt».
Еще при помощи WMI можно запускать программы – синтаксис предельно прост:
К сожалению, в отличие от Psexec, получить вывод в консоли не получится ― придется выводить результаты команды в файл.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего wmic. При необходимости логин и пароль можно задать явно.
Ручное удаление
Бывают случаи, когда ничего не помогает избавиться от следов удаленной программы. В данной ситуации вам остается сделать всё собственными руками. Это самый сложный способ, но и самый действенный. Чаще всего проблемы возникают с реестром и вложенными папками.
Первым делом проверьте папки, расположенные по адресам: C:Program Files и C:Program Files (x86). Иногда папка нужной программы находится внутри другой директории, которая соответствует названию компании-разработчика. Например, файлы дефрагментатора Auslogics Disk Defrag будут располагаться по адресу C:Program Files (x86)AuslogicsDisk Defrag. При поиске остаточных данных рекомендуется включить отображение скрытых элементов в системе.
После проверки системного диска переходите к временным файлам. Введите одну из двух команд в адресную строку Проводника: %AppData% и %LocalAppData%. Вы попадете в хранилище с данными, которые остаются в результате работы программ. Они требуются системе для того, чтобы осуществлять быстрый повторный запуск утилиты или сохранять настройки софта. Однако будьте аккуратны. В этих директориях хранится информация, которая может быть полезна. Например, некоторые данные о работе браузеров. Рекомендуем удалять элементы выборочно и только те, которые точно не нужны.
Напоследок загляните и в реестр. Для этого нажмите комбинацию Win + R и в появившемся поле введите команду regedit. После этого сверху выберите пункт «Правка», а затем «Найти». В поле поиска введите название компании-производителя или название программы. Найденные ключи отметьте галочкой и удалите. Кроме того, проверьте следы удаленных утилит, которые могут находиться по адресам: