Гид по технологиям

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

4 min read Windows Обновлено 06 Jan 2026
Список установленных программ в Windows через PowerShell
Список установленных программ в Windows через PowerShell

Список установленных программ, отображаемый на экране компьютера

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

Windows позволяет быстро сгенерировать такой список с помощью PowerShell. Ниже — пошаговая инструкция, объяснение команд и варианты экспорта (текст, CSV). Также приведены варианты сравнения списков между разными машинами и советы по безопасности.

Что делает базовая команда

Откройте PowerShell (в Пуске введите «Powershell») и вставьте следующую строку, чтобы вывести список программ вместе с издателем и датой установки:

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

Пояснение по фрагментам:

  • Get-ItemProperty — читает значения из указанных ключей реестра.
  • Путь HKLM:\Software\Wow6432Node… — содержит 32-битные приложения в 64‑битной системе. Другие места реестра перечислены ниже.
  • Select-Object ограничивает вывод столбцами DisplayName, DisplayVersion, Publisher, InstallDate.
  • Format-Table –AutoSize красиво форматирует таблицу для вывода в консоль.

Важно: Format-Table удобен для просмотра в консоли, но при перенаправлении в файл лучше экспортировать в CSV для структурированности.

Сохранение результата в текстовый файл

Чтобы направить вывод в текстовый файл на рабочем столе, добавьте перенаправление. Замените USERNAME на ваше имя пользователя (ниже — более надёжный вариант с переменной окружения):

> C:\Users\USERNAME\Desktop\InstalledProgramsList.txt  

Вместе (как в исходном примере):

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

Совет: вместо явного имени пользователя используйте переменную окружения $env:USERPROFILE — так команда работает на любой учётной записи:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > "$env:USERPROFILE\Desktop\InstalledProgramsList.txt"

Экспорт в CSV (рекомендуется)

CSV удобнее для импорта в таблицы и для сравнения. Export-Csv сохраняет структуру:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Export-Csv -Path "$env:USERPROFILE\Desktop\InstalledProgramsList.csv" -NoTypeInformation -Encoding UTF8

Чтобы получить и 64‑, и 32‑битные записи сразу (полный список), объедините оба пути:

$paths = @(
  "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*",
  "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*",
  "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
)
Get-ItemProperty $paths | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Sort-Object DisplayName | Export-Csv -Path "$env:USERPROFILE\Desktop\InstalledProgramsFull.csv" -NoTypeInformation -Encoding UTF8

Пояснение:

  • HKLM — системный раздел реестра (Local Machine).
  • HKCU — установки, специфичные для текущего пользователя.
  • Некоторые программы регистрируют себя только в одном из этих мест, поэтому имеет смысл читать все перечисленные ключи.

Преобразование даты установки в читаемый формат

InstallDate часто записан как YYYYMMDD (например, 20200615). Преобразуйте его так:

Get-ItemProperty $paths | Select-Object DisplayName, DisplayVersion, Publisher, @{Name='InstallDate';Expression={ if ($_.InstallDate -match '^\d{8}$') { [datetime]::ParseExact($_.InstallDate,'yyyyMMdd',$null).ToString('yyyy-MM-dd') } else { $_.InstallDate }}} | Export-Csv "$env:USERPROFILE\Desktop\InstalledProgramsReadable.csv" -NoTypeInformation -Encoding UTF8

Альтернативы и предупреждения

  • Get-WmiObject Win32_Product — иногда упоминают эту команду, но она медленная и может триггерить повторную проверку/переустановку MSI-пакетов. Не рекомендуется для простого чтения списка.
  • Get-CimInstance — современная альтернатива WMI, но также не всегда показывает все программы, потому что список формируется на основе зарегистрированных MSI.
  • Чтение реестра (Get-ItemProperty) надёжнее для полного перечня, включая не‑MSI установки.
  • Для доступа к некоторым ключам реестра администраторские права не требуются, но в отдельных конфигурациях может понадобиться запуск PowerShell от имени администратора.

Important: Сохраняйте файл на внешнем носителе или в облаке. При очистке диска файл будет утерян вместе с системой.

Как сравнить списки с двух компьютеров

Если вы получили CSV-файлы с двух машин, можно сравнить их прямо в PowerShell:

$listA = Import-Csv "C:\Users\UserA\Desktop\InstalledProgramsFull.csv"
$listB = Import-Csv "C:\Users\UserB\Desktop\InstalledProgramsFull.csv"
Compare-Object $listA $listB -Property DisplayName -PassThru | Format-Table

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

Альтернативы: загрузите оба TXT/CSV в любой онлайн-сервис сравнения текста или используйте GUI-инструменты (WinMerge, Beyond Compare).

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

  • Экспортировать полный список (см. $paths) в CSV.
  • Сохранить CSV на внешнем носителе или облаке.
  • Обозначить критические лицензионные программы и сохранить ключи/аккаунты.
  • Сравнить список с целевой машиной (Compare-Object) и отметить отсутствующие.
  • Для автоматической установки подготовить список установщиков и скриптов.

Когда метод может не сработать

  • Приложения, которые не регистрируют себя в реестре, не появятся (редкие portable‑утилиты).
  • Установки, сделанные в нестандартных профилях, могут не попадать в HKCU для текущего пользователя.
  • При повреждённом реестре вывод может быть неполным.

Краткое резюме

Используйте чтение реестра через Get-ItemProperty для надёжного списка установленных программ, экспортируйте в CSV для удобства и сравнивайте списки через Compare-Object. Сохраняйте итоговый файл на внешнем носителе.

Критерии приёмки

  • На рабочем столе создан CSV или TXT-файл со списком программ.
  • Файл содержит, как минимум, DisplayName и DisplayVersion.
  • Файл скопирован в безопасное место (флешка/облако).

1‑строчная глоссарий

  • PowerShell — современная оболочка Windows для автоматизации и работы с объектами и реестром.

Примечание: если нужны скрипты для массовой переустановки программ по списку — могу добавить шаблон Playbook и примеры автоматизации.

Image Credit: racorn via Shutterstock.com

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство