Output & export

List Installed Software with PowerShell (and Export to CSV)

3 min read

List installed apps by reading the Uninstall registry keys — fast and safe.

All installed software (64-bit + 32-bit keys)

$keys = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*',
        'HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
Get-ItemProperty $keys -ErrorAction SilentlyContinue |
  Where-Object DisplayName |
  Select-Object DisplayName, DisplayVersion, Publisher |
  Sort-Object DisplayName

Find one program

Get-ItemProperty 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*' |
  Where-Object DisplayName -like '*Chrome*' |
  Select-Object DisplayName, DisplayVersion, UninstallString

Export the list to CSV

Get-ItemProperty $keys -ErrorAction SilentlyContinue |
  Where-Object DisplayName |
  Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
  Sort-Object DisplayName |
  Export-Csv -Path .\installed-software.csv -NoTypeInformation -Encoding UTF8

Apps installed via winget (if present)

winget list

Why not Win32_Product: Get-CimInstance Win32_Product is slow and famously triggers an MSI “reconfiguration” (self-repair) on every product as it enumerates — avoid it. The registry keys above are instant and read-only. Check both the normal and WOW6432Node keys to catch 32-bit apps on 64-bit Windows; per-user installs also live under HKCU:\Software\...\Uninstall\*.

Open the full version (with copy buttons) ↗

← All recipes