Если вы являетесь системным администратором, одной из ваших задач является установка, обновление и удаление программного обеспечения с большого количества систем. Что если бы я сказал вам, что вам больше не нужно подключаться к каждой машине и проверять установленное программное обеспечение вручную? Вы можете фактически получить список установленного программного обеспечения с помощью PowerShell!
В этом блоге я покажу вам, как получить список установленного программного обеспечения с помощью PowerShell на вашей локальной машине и сразу на множестве компьютеров.

Обратите внимание, что некоторые статьи могут советовать вам сделать что-то вроде
Get-WmiObject -Class win32_product
. Не делайте этого. Узнайте почему здесь.
Установленное программное обеспечение и реестр
Для справки, установленное программное обеспечение находится в трех местах:
- реестре удаления 32-битной системы
- реестре удаления 64-битной системы
- реестре удаления профиля каждого пользователя.
Каждая запись программного обеспечения обычно определяется идентификатором глобальной уникальности программы (GUID). Внутри ключа GUID содержится вся информация о конкретном программном продукте. Для получения полного списка PowerShell должен перечислить каждый из этих ключей, прочитать каждое значение реестра и проанализировать результаты.
Поскольку код для правильного разбора этих значений значительно превышает объем одной статьи, я предварительно создал функцию под названием Get-InstalledSoftware
для перечисления установленного программного обеспечения с помощью PowerShell, которая упаковывает весь этот код для вас, как вы можете видеть ниже, перечисляя установленные программы на компьютере.
Как только вы скопируете и вставите эту функцию в свою консоль PowerShell или добавите ее в свой скрипт, вы сможете вызвать ее, используя определенное имя компьютера с помощью параметра ComputerName
.
Перечисление установленного программного обеспечения с помощью PowerShell
Когда вы это сделаете, вы получите объект для каждого установленного программного обеспечения. Вы сможете получить множество информации о том, какое программное обеспечение установлено.
Если вы заранее знаете название программного обеспечения, вы также можете использовать параметр Name
, чтобы ограничить поиск только программами, соответствующими этому значению.
Например, возможно, вам нужно только проверить, установлен ли Microsoft Visual C++ 2005 Redistributable (x64). Просто используйте это значение в качестве параметра Name
, как показано ниже.
Сводка
Используя PowerShell для получения информации о установленном программном обеспечении, вы можете создать полностью бесплатный инструмент, который вы и ваша команда сможете использовать для легкого поиска установленного программного обеспечения на многих компьютерах с Windows одновременно!
Source:
https://adamtheautomator.com/powershell-list-installed-software/