Получить список установленных программ powershell. Удаленное удаление программ при помощи WMI

💖 Нравится? Поделись с друзьями ссылкой

В работе администратора часто возникает необходимость проверить, установлена ли на некотором компьютере в сети определённая программа и какой версии. Например, можно проверить, установлено ли важное обновление или все ли рабочие станции имеют правильную версию Office.
Как это сделать с помощью или скриптов (на примере ), рассказывается далее.

Идея основана на том факте, что информация об установленных программах находится в системном реестре по адресу:
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\

Указанная ветвь реестра перечисляет только программы, установленные «для всех пользователей», а программы «для этого пользователя» перечислены в ветви:
HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall

В Windows x64 список программ сохраняется также в папке реестра:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

Соответственно, для получения полного списка потребуется просканировать информацию из всех трёх ветвей реестра.

Например, на VBScript:

Const HKLM = &H80000002 "HKEY_LOCAL_MACHINE strComputer = "computer" strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" strEntry1a = "DisplayName" strEntry1b = "QuietDisplayName" strEntry2 = "InstallDate" strEntry3 = "VersionMajor" strEntry4 = "VersionMinor" strEntry5 = "EstimatedSize" Set objReg = GetObject("winmgmts://" & strComputer & _ "/root/default:StdRegProv") objReg.EnumKey HKLM, strKey, arrSubkeys WScript.Echo "Installed Applications (" & strComputer & ")" & VbCrLf For Each strSubkey In arrSubkeys intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _ strEntry1a, strValue1) If intRet1 <> 0 Then objReg.GetStringValue HKLM, strKey & strSubkey, _ strEntry1b, strValue1 End If If strValue1 <> "" Then WScript.Echo VbCrLf & "Display Name: " & strValue1 End If objReg.GetStringValue HKLM, strKey & strSubkey, _ strEntry2, strValue2 If strValue2 <> "" Then WScript.Echo "Install Date: " & strValue2 End If objReg.GetDWORDValue HKLM, strKey & strSubkey, _ strEntry3, intValue3 objReg.GetDWORDValue HKLM, strKey & strSubkey, _ strEntry4, intValue4 If intValue3 <> "" Then WScript.Echo "Version: " & intValue3 & "." & intValue4 End If objReg.GetDWORDValue HKLM, strKey & strSubkey, _ strEntry5, intValue5 If intValue5 <> "" Then WScript.Echo "Estimated Size: " & Round(intValue5/1024, 3) & " megabytes" End If Next

Скрипт подключается к компьютеру с сетевым именем strComputer, просматривает раздел реестра SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ и выводит информацию о программах.

Аналогичные действия можно выполнить в командном файле CMD. Этот командный файл выдаёт список программ:

@echo off rem Этот командный файл записывает список программ, установленных на rem удалённом компьютере. rem %1 Сетевое имя компьютера в формате PCNAME (пустое значение означает rem локальный компьютер). rem Определяем путь к папке реестра set reg_key=hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall if not "%1" == "" set reg_key=\\%~1\%reg_key% rem Перебираем установленные программы for /F "tokens=1,2,*" %%a in ("reg query "%reg_key%" /s") do ^ if "%%a" == "DisplayName" echo %%c

Для проверки того, установлена ли конкретная программа (по названию) на каком-то одном компьютере, можно использовать следующий командный файл check-app-pc.cmd

@echo off rem Этот командный файл проверяет, установлена ли заданная программа на rem удалённом компьютере. rem %1 Полное название программы или часть названия, например, KB2570791. rem %2 Сетевое имя компьютера в формате PCNAME (пустое значение означает rem локальный компьютер). rem Возвращаемые коды: rem 0 Программа установлена. rem 2 Программа не найдена. rem 87 Ошибка в параметрах. set app_name=%1 set pc_name=%2 rem Проверяем наличие в списке call apps.cmd %2 | findstr /i "%~1" if errorlevel 1 echo "%~1" program not found && exit /b 2 echo "%~1" program installed. && exit /b 0

Соответственно, команда check-app-pc.cmd KB2570791 ws_alex проверит, установлено ли обновление KB2570791 на компьютере WS_ALEX.
Теперь можно автоматизировать работу этого командного файла, добавив проверку большего количества компьютеров по списку. Для этого создаём командный файл check-app-pclist.cmd с циклом, перебирающим строчки текстового файла с сетевыми именами компьютеров.

@echo off rem %1 Полное название программы или часть названия программы. rem %2 Имя файла со списком компьютеров. rem Примечание: этот командный файл использует check-app-pclist.cmd if "%~1" == "" exit /b 87 if not exist %2 exit /b 2 for /F %%a in (%2) do (echo %%a... call check-app-pc.cmd %1 %%a)

Пример списка файлов pc.list

SERVER_DB SERVER_FILES WS_ALEX WS_RECEPTION

Теперь с помощью команды check-app-pclist.cmd KB2570791 pc.list можно проверить, установлено ли обновление KB2570791 на каждом компьютере, перечисленном в файле pc.list.

Список установленных программ по сети

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

Рассмотрим два способа: первый подразумевает использование командной строки и утилиты wmic, второй — PowerShell.

Вывод списка программ с помощью утилиты командной строки WMIC

Список установленных в системе программ может быть получен с помощью утилиты командной строки WMIC, через которую можно обратиться и опросить пространство имен WMI. Запустите командную строку с правами администратора и выполните команду:

wmic product get name,version

После небольшого ожидания, на экран консоли будет выведен список названий и версия установленных в системе программ.

Этот список можно экспортировать в текстовый файл с помощью команды:

wmic product get name,version /format:csv > c:\Temp\Programs_%Computername%.csv

После окончания выполнения команды перейдите в каталог C:\Temp и найдите csv файл, имя которого начинается с Programs_[имя_ПК]. В данном файле в csv-формате помимо названия и версии ПО, также будет содержаться имя ПК (удобно для дальнейшего анализа).

Вывод списка программ через Windows PowerShell

Список установленных программ также может быть получен с помощью PowerShell. Идея метода в том, что список установленных программ, который мы видим в списке Programs and Features Панели Управления, строится на основе данных, хранящихся в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Наша задача – вывести содержимое данной ветки реестра. Итак, запустите консоль Powershell и выполните команду:

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, Size, InstallDate | Format-Table -AutoSize

Как вы видите, в результирующем списке содержится имя программы, версия, разработчик и дата установки.

Совет . Для 32-битных приложений на x64 версиях Windows, также нужно брать данные из ветки HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

Экспортировать полученный список в csv файл можно так:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize > c:\temp\ installed-software.txt

Рассмотренный выше способ позволяет вывести данные только о классический Windows приложениях. Чтобы вывести список установленных Metro приложений, воспользуйтесь командой:

Get-AppxPackage | Select Name, PackageFullName |Format-Table -AutoSize > c:\temp\installed_metro_apps.txt

Чтобы получить список установленного ПО на удаленном компьютере (к примеру, с именем wks_name11), воспользуемся командлетом Invoke-command:

Invoke-command -computer wks_name11 {Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize }

Чтобы сравнить списки установленного ПО, полученные с двух разных компьютеров и найти отсутствующие приложения, можно воспользоваться такой командой:

Compare-Object –ReferenceObject (Get-Content C:\temp\installed-software.txt) –DifferenceObject (Get-Content C:\temp\installed-software2.txt)

В нашем примере в двух сравниваемых списках имеются различия в двух программах.

Другой способ вывести список установленных программ – воспользоваться командлетом Get-WmiObject, также позволяющего обращаться с пространству WMI:

Get-WmiObject -Class Win32_Product | Select-Object -Property Name

Как получить список установленных программ в операционной системе Windows? Список установленных на компьютере программ можно получить несколькими способами.

В этой статье мы разберем три разных способа: с помощью командной строки, Windows PowerShell, и программы CCleaner. Список установленных программ будет сохранен на компьютере в текстовом файле.

Посмотреть список установленных программ можно непосредственно в операционной системе Windows. Также можно ознакомиться с данным списком установленных программ с помощью программ оптимизаторов или деинсталляторов (все установленные приложения вы увидите в окне программы).

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

Как посмотреть список установленных программ с помощью командной строки

Войдите в меню «Пуск», запустите командную строку от имени администратора, а затем ведите следующую команду:

В зависимости от того, что вы хотите: посмотреть в окне интерпретатора командной строки список установленных приложений, или сохранить список установленных программ на компьютер в виде текстового файла, выполните соответствующие команды.

Для просмотра списка программ, введите следующую команду:

Product get name,version

После ввода соответствующей команды, не забывайте нажать на клавишу «Enter». Подождите немного, потому что список установленных приложений сформируется не моментально. Вы увидите список установленных программ в виде таблицы.

Для сохранения списка программ на компьютере, введите команду:

/output:C:\appsfile.txt product get name,version

В таблице отображается имя программы и номер версии приложения.

Обратите внимание, в этой команде выбрано сохранение текстового файла «appsfile» на диске «С». Вы можете выбрать другой диск на своем компьютере для сохранения файла в формате «TXT».

Как получить список установленных программ с помощью Windows PowerShell

В Windows 10, или в Windows 8, введите в поле поиска выражение «powershell» (без кавычек). Далее кликните правой кнопкой мыши по Windows PowerShell, а затем нажмите на пункт «Запустить от имени администратора».

В окне «Windows PowerShell» введите команду для отображения списка установленных программ:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

Затем нажмите на клавишу «Enter».

Если вы хотите сразу получить список установленных программ в текстовом файле, введите эту команду:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize > C:\apps-list.txt

Нажмите на клавиатуре на клавишу «Enter».

В этой команде выбрано сохранение файла «apps-list» в формате «TXT» на диске «С».

В таблице вы увидите: имя приложения и версию программы.

Для сохранения списка приложений полученных из магазина Windows, выполните в PowerShell следующую команду:

Get-AppxPackage | Select Name, PackageFullName | Format-Table -AutoSize > C:\store-apps-list.txt

Как сохранить список установленных программ в CCleaner

В открывшемся окне выберите место для сохранения текстового файла. По умолчанию, сохраненный файл имеет имя «install».

В файле собраны следующие сведения о программах: имя программы, издатель, дата установки, размер, версия.

Выводы статьи

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

Я думаю, что все наши читатели сталкивались с необходимостью переустановки Windows. Иногда это происходит из-за возникших критических ошибок и проблем, иногда вызвано апгрейдом, иногда продиктовано желанием сбросить весь накопившийся в системе хлам и начать компьютерную жизнь с «чистого листа». Сразу после установки новой системы вы ставите необходимые драйвера и системные компоненты, а потом приступаете к восстановлению привычного программного окружения. Для этой задачи вам очень пригодится заранее составленный список приложений, особенно если он насчитывает несколько десятков элементов. Сейчас мы научимся его составлять (без ручки и бумаги! :).

Метод 1. Используем командную строку

Откройте меню Пуск и введите в строку поиска слово «сmd». Щелкните правой кнопкой по найденному элементу и выберите в контекстном меню Запустить как администратор . В Windows 8 примерно то же самое, только вместо Пуск нажмите кнопку Win на клавиатуре.

Введите последовательно две команды:

WMIC product get name,version

После непродолжительного ожидания вы увидите в окне список всех установленных в вашей системе программ.

/output:D:\installedapps.txt product get name,version

Теперь вам остается только открыть в файловом менеджере диск D (вы можете, разумеется, указать и другой путь сохранения) и вы увидите там текстовый файл installedapps.txt со списком всех установленных программ.


Метод 2. CCleaner

Для тех пользователей, которые еще в детстве получили испуг от черной-пречерной командной строки, есть более простой способ, но требующий дополнительной программы. В ее роли выступит популярная утилита CCleaner, которая установлена практически на любом компьютере. К тому же, этот метод позволяет сгенерировать более полный список вашего программного обеспечения.

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

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

Те, кто хочет себя немного помучить, могут воспользоваться обычной командной строкой. Запустив консоль CMD от имени администратора, выполните в ней последовательно эти две команды:

WMIC
/output:D:\myapps.txt product get name, version

Список программ будет сохранён в текстовый файл myapps.txt с указанием имени и версии продукта. Способ этот, правда, несколько «хромает» , - некоторые установленные приложение могут не попасть в список. Получить список установленных программ можно и с помощью консоли . Для этого используется следующая команда:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Selеct-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > D:\apps.txt

Get - ItemProperty HKLM : \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ * | Sel еct - Object DisplayName , DisplayVersion , Publisher , InstallDate | Format - Table –AutoSize & amp ; gt ; D : \ apps . txt

Список приложений будет выведен в файл apps.txt , что в корне диска D . Но и этот способ имеет свои недостатки, так как установленные программы могут хранить свои данные в разных ключах реестра.

На самом деле есть куда более простой и удобный способ получить список установленных приложений. Наверняка у каждого пользователя найдётся на компьютере - популярный чистильщик дисков. Откройте её, переключитесь в раздел «Сервис» и, находясь на вкладке «Удаление программ» , нажмите кнопку «Сохранить отчет» и укажите путь для сохранения текстового файла.

При этом в список попадут не только десктопные, но и универсальные приложения, которые изначально присутствовали в Windows и те, которые были установлены из Магазина.

Для каждого приложения будут указаны его название, версия, разработчик и дата установки.

Рассказать друзьям