Получение списка приложений, поддерживающих удаление — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Получение списка приложений, поддерживающих удаление

2022-10-28 29
Получение списка приложений, поддерживающих удаление 0.00 из 5.00 0 оценок
Заказать работу

Не существует гарантированного способа нахождения всех приложений, установленных в системе, однако можно найти все программы, отображаемые в диалоговом окне «Установка и удаление программ». Диалоговое окно «Установка и удаление программ» находит такие приложения в списке, размещенном в разделе реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall. Этот раздел можно использовать и для самостоятельного поиска приложений. Просмотр раздела Uninstall можно упростить, отобразив соответствующее положение в реестре на диск Windows PowerShell:

PS> New-PSDrive -Name Uninstall -PSProvider Registry -Root HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall   Name  Provider  Root                              CurrentLocation ----  -------- ----                              --------------- Uninstall Registry HKEY_LOCAL_MACHINE\SOFTWARE\Micr...

 

Примечание

Диск HKLM: отображает корневой раздел HKEY_LOCAL_MACHINE, поэтому он и был использован в пути к разделу Uninstall. Вместо диска HKLM: при указании пути в реестре можно использовать разделы HKLM или HKEY_LOCAL_MACHINE. Использование существующего диска реестра удобнее, так как вместо ввода имен разделов вручную позволяет воспользоваться функцией автозавершения по нажатию клавиши TAB.

 

Созданный диск с именем «Uninstall» делает поиск установленных приложений быстрым и удобным. Число установленных приложений можно определить, подсчитав количество разделов реестра на диске Uninstall: Windows PowerShell:

PS> (Get-ChildItem -Path Uninstall:).Length 459

 

Дальнейший поиск в полученном списке приложений осуществляется разнообразными методами, начиная с использования командлета Get-ChildItem. Сохранить список приложений в переменной $UninstallableApplications позволит следующая команда:

$UninstallableApplications = Get-ChildItem -Path Uninstall:

 

Примечание

Длинное имя переменной использовано здесь лишь для улучшения восприятия. На практике использование длинных имен не имеет особого смысла. Для имен переменных поддерживается автозавершение по нажатию клавиши TAB, но использование имен длиной в 1 - 2 знака позволяет ускорить ввод команд. Более длинные описательные имена наиболее полезны при разработке кода для повторного использования.

 

Определить отображаемые имена приложений в разделе Uninstall можно при помощи следующей команды:

PS> Get-ChildItem -Path Uninstall: | ForEach-Object -Process { $_.GetValue("DisplayName") }

 

Уникальность этих значений не гарантирована. В следующем примере два установленных элемента отображаются как «Windows Media Encoder 9 Series»:

PS> Get-ChildItem -Path Uninstall: | Where-Object -FilterScript { $_.GetValue("DisplayName") -eq "Windows Media Encoder 9 Series"}     Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micros oft\Windows\CurrentVersion\Uninstall   SKC VC Name                      Property --- -- ----                      -------- 0 3 Windows Media Encoder 9   {DisplayName, DisplayIcon, UninstallS... 0 24 {E38C00D0-A68B-4318-A8A6-F7... {AuthorizedCDFPrefix, Comments, Conta...

 

Установка приложений

Класс Win32_Product может использоваться для удаленной или локальной установки пакетов Windows Installer. При удаленной установке необходимо указать путь к устанавливаемому пакету MSI в виде классического сетевого UNC-пути, так как подсистема WMI не распознает пути Windows PowerShell. Например, для установки MSI-пакета NewPackage.msi, расположенного на общем сетевом ресурсе \\AppServ\dsp на удаленном компьютере PC01, нужно ввести в командной строке Windows PowerShell следующую команду:

(Get-WMIObject -ComputerName PC01 -List | Where-Object -FilterScript {$_.Name -eq "Win32_Product"}).InvokeMethod("Install","\\AppSrv\dsp\NewPackage.msi")

 

Приложения, не использующие технологию Windows Installer, могут поддерживать собственные методы автоматизированного развертывания. Сведения о наличии метода автоматизации развертывания обычно можно найти в документации к приложению или получить в системе технической поддержки его производителя. В отдельных случаях, даже если автоматизация установки не была явно предусмотрена производителем приложения, некоторые методы автоматизации могут поддерживаться производителем ПО для установки.

Удаление приложений

Удаление пакета, установленного при помощи Windows Installer, осуществляется в оболочке Windows PowerShell приблизительно так же, как и установка пакета при помощи метода InvokeMethod. В следующем примере выбор пакета для удаления производится на основе его имени; в отдельных случаях удобнее использовать фильтр IdentifyingNumber:

(Get-WmiObject -Class Win32_Product -Filter "Name='ILMerge'" -ComputerName.).InvokeMethod("Uninstall",$null)

 

Удаление других приложений несколько сложнее, даже если производится локально. Команды удаления таких приложений из командной строки содержатся в свойстве UninstallString. Следующий метод пригоден как для приложений, установленных при помощи Windows Installer, так и для старых программ, перечисленных в разделе Uninstall:

Get-ChildItem -Path Uninstall: | ForEach-Object -Process { $_.GetValue("UninstallString") }

 

При необходимости можно отфильтровать вывод по отображаемому имени:

Get-ChildItem -Path Uninstall: | Where-Object -FilterScript { $_.GetValue("DisplayName") -like "Win*"} | ForEach-Object -Process { $_.GetValue("UninstallString") }

 

Однако полученные команды не всегда можно использовать в командной строке Windows PowerShell без изменений.


Поделиться с друзьями:

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.