Как вывести список установленных программ в Windows 11
- Для чего это нужно?
- Как вывести список установленных программ через Winget
- Вывод списка программ с помощью утилиты WMIC
- Как получить список установленных программ Windows через PowerShell
- Как получить список установленного ПО на удаленном компьютере
- Как получить список установленного ПО через функцию PowerShell
- Получение списка установленных программ через стороннее ПО
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами разобрали основные понятия Active Directory и рассмотрели его структуру. Идем дальше и сегодня я хочу вас научить выводить список установленных программ в Windows 11, но данные методы подойдут и для любой другой версии. Данная задача может перед вами появиться, когда нужно будет сделать некую инвентаризацию приложений на ваших серверах или рабочих станциях или убедиться есть ли у пользователя та или иная программа для работы.
Для чего это нужно?
- Инвентаризация программного обеспечения - очень часто в организациях любят давать пользователям права на рабочую станцию, что в последствии ведет к тому. что пользователь может наставить кучу разного ПО, и не всегда лицензионного.
- Перед переустановкой системы - Это то же может вас с подвигнуть к получению списку установленных программ в Windows 11 и предыдущих версий, чтобы пользователь получая свежую систему смог там обнаружить свое привычное окружение. Очень подойдет для формирования скрипта Winget.
- Создание списка стандартных приложений для компании - такое то же часто бывает, что компания хочет ввести стандарты, что можно использовать, а что нет. Для этого логично, что необходимо иметь список.
Как вывести список установленных программ через Winget
Winget - это новая утилита командной строки, которая появилась в Windows 10 и позволяет производить установку программ через интернет из репозитория Microsoft. Но она так же умеет показывать список всех установленных пакетов и приложений. Для этого вызовите командную строку или оболочку PowerShell и введите команду:
На выходе вы получите общий список программ, которые есть в вашей Windows 11, обратите внимание, что тут будут и GUID приложений, они идут в столбце "ИД", а так же версия программы.
Если хотите сохранить весь список в текстовый файл, то воспользуйтесь такой конструкцией, не забываем только указать свой путь, где сохранять файл:
Вывод списка программ с помощью утилиты WMIC
WMIC.exe - это служебная программа командной строки и оболочки PowerShell, которая используется для доступа к инструментарию управления Windows. Через WMIC можно легко получить список установленных в системе программ, она сделает это через пространство имен WMI, так сказать опросит его. Запускать описанную ниже команду вы можете как через командную строку, так и через PowerShell, я воспользуюсь последним, он выглядит позитивнее:
Вот так будет выглядеть полученный список в виде двух столбцов (Name и Version). Хочу отметить, что обращение к WMI может занимать секунд 30 и более, так что не пугайтесь, что информация не отобразилась сразу.
Для того, чтобы экспортировать полученный список программ, вам нужно использовать вот такую конструкцию:
В результате у меня будет сформирован текстовый файл содержащий весь список программ из моей системы Windows 11.
Пре желании вы можете произвести выгрузку и в CSV формате, для это введите:
Тут еще будет добавлено поле Node, содержащее имя компьютера откуда была произведена выгрузка списка.
Как получить список установленных программ Windows через PowerShell
Я вам не перестаю напоминать, что все, что вы видите в графическом виде операционной системы Windows 10 или Windows 11 имеет свой аналог в виде ключа реестра или ветки. Список установленных приложений в этом не исключение, все данные есть в реестре Windows. Приведу пример, когда вы открываете окно "Программы и компоненты" (Которое можно открыть через оснастку appwiz.cpl)
Или параметрах Windows "Приложения и возможности" , то весь этот список есть в разделе реестра, к которому легко можно обратиться и получить его, в этом и заключается суть метода.
Сам раздел реестра содержащий список программ установленных в Windows 10 или Windows 11 располагается по пути:
Я вам для примера покажу данный раздел, но вы тут мало, что сможете понять, так как тут за место названия приложения идет его GUID, для Windows 11 так проще, машина так понимает лучше, но PowerShell легко это конвертирует в читаемый вид.
В оболочке PowrShell введите команду, которая вам сделает запрос к реестру и вытянет от туда список всех программ, что есть в системе. Нам поможет командлет Get-ItemProperty.
Чтобы сохранить данный список в текстовый файл, то нужно добавить командлет Out-File.
Чтобы сохранить данный список в CSV файл, то нужно добавить командлет Out-File или Export-Csv.
У PowerShell есть небольшое ограничение по командам указанным выше, так как приложения установленные из магазина Windows не попадают в данную ветку реестра, и чтобы получить их список вам нужно уже запросить список установленных пакетов Windows 11, сказано, сделано:
Ну и напомню использование командлета Get-WmiObject.
Как получить список установленного ПО на удаленном компьютере
PowerShell мощная вещь и позволяет легко извлекать информацию с удаленных компьютеров особенно это актуально в средах Active Directory. Предположим у меня есть удаленный компьютер с именем STV2019S01 и я хочу вывести список установленного на него ПО. Для этого выполним команду:
PowerShell легко может сравнить два списка и показать вам, где есть различия. Я сравню список установленного ПО с компьютера dc01 и svt2019s01. Выполните команду:
Как получить список установленного ПО через функцию PowerShell
Ранее я вам рассказывал, как создать и сохранить функцию PowerShell, вот пример функции для локального и удаленного получения списка установленного ПО в Windows 11.
function Get-InstalledApps {
Param (
[CmdletBinding()]
[Parameter(ValueFromPipeline=$true)]
[Alias('name')] # Helps with 'Select-Object -ExpandProperty Name'
[string[]]$computers = $env:COMPUTERNAME
)
process {
foreach($computer in $computers){
write-verbose -verbose -message "`nStarting scan on $computer"
Invoke-Command -Computername $computer -ErrorAction SilentlyContinue -ErrorVariable InvokeError -Scriptblock {
$installPaths = @('HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall','HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall')
Get-ChildItem -Path $installPaths | Get-ItemProperty | Sort-Object -Property DisplayName | Select-Object -Property DisplayName, DisplayVersion, Publisher, UninstallString, Version
}
if ($invokeerror){
Write-Warning "Could not communicate with $computer"
} # if ($invokeerror)
} # foreach($computer in $computers)
} # process
} # function Get-InstalledApps
Получение списка установленных программ через стороннее ПО
Сейчас многие программы по оптимизации и удалению ПО способны формировать и показывать список установленных программ. Приведу несколько примеров, первым будет утилита CCleaner которую мы использовали для удаления мусора с компьютера.
- Для получения списка программ Windows в CCleaner переходим в раздел "Инструменты".
- Теперь в правом нижнем углу нажмите кнопку "Сохранить в текстовый файл"
Указываем место куда мы сохраним данный файл
Открываем файл и проверяем, что в нем присутствует весь список установленных программ.
Второй утилитой с помощью которой вы легко получите список установленного ПО будет бесплатная UninstallView, которая входит в состав пакета утилит NirLauncher.
Когда вы запустите UninstallView вы сразу увидите все программы, что установлены в вашей операционной системе Windows.
Чтобы получить данный список в виде файла, нам необходимо его выгрузить. Для этого выберите в меню "View - HTML Report - All items"
В результате вы получите вот такой удобный список с большим количеством последних столбцов.
На этом у меня все, вы сами можете выбрать удобный для себя метод получения списка установленных программ в Windows 11. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.
UninstallView очень помогла. Работает так-же из командной строки, с возможность задать фильтр(в UninstallView.cfg) для поиска установленных программ.