#windows #powershell
#Windows #powershell
Вопрос:
Мне нужно перечислить все установленные приложения в Windows. Используя powershell
и следующую команду, я могу узнать имя и некоторые другие сведения об установленных приложениях.
Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall * | Select-Object DisplayName
Я хочу также узнать commandline
о приложениях, чтобы я мог запустить приложение, используя это commandline
. Итак, в основном мне нужна следующая информация-
- Имя приложения
- Командная строка приложения
- Запустите приложение с помощью командной строки
Каким может быть возможное решение для этого?
Ответ №1:
К сожалению, существует большое количество способов интерпретировать «установленные приложения» в Windows.
Если вы ищете список программ на вашем пути, вы можете использовать
Get-Command -Type Application
Этот список включает программы, установленные как часть Windows, а также те, которые были добавлены после этого, если установщик изменил переменную среды PATH, чтобы сделать программы видимыми в командной строке. Список будет большим.
В зависимости от используемой версии PowerShell эта Get-Package
команда может оказаться полезной. В PowerShell 5.1 он включает информацию из нескольких источников, включая список программ удаления в реестре, базу данных установщика Windows (MSI) и информацию об обновлениях системы. Этот список тоже будет большим, но будет отличаться от Get-Command
списка.
Ответ №2:
Установленная программа находится в другом разделе реестра:
HKLM:SOFTWAREMicrosoftWindowsCurrentVersionApp Paths
Следующий скрипт получает все программы и их командную строку:
$q="`""
Get-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionApp Paths*" |
Where-Object {$_."(default)" -ne $null} |
Select-Object @{ expression={$_.PSChildName}; label='Program'} ,@{ expression={$q $_."(default)" $q}; label='CommandLine'}
Пример выходного результата:
Program CommandLine
------- -----------
7zFM.exe "C:Program Files (x86)7-Zip7zFM.exe"
AcroRd32.exe "C:Program Files (x86)AdobeReader 9.0ReaderAcroRd32.exe"
excel.exe "C:PROGRA~2MICROS~1Office12EXCEL.EXE"