← script library

List Installed Software with PowerShell

Checks & DiagnosticsAugust 17, 2026

Reads the uninstall registry keys for classic Win32 applications with publisher and version, then lists the installed Microsoft Store packages. Run it across a server group when a licence audit or a vulnerability advisory lands and you need to know where a product is actually installed.

powershell
# Discover Installed Applications
#-------------------------------------------
function Write-Log {
    param($Message)
    Write-Host "<WRITE-LOG = `"*$Message*`">"
}

# Get Installed Programs (Win32)
Write-Host "`n=== Installed Win32 Programs (Control Panel) ===" -ForegroundColor Cyan
$logListWin32 = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
    Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Sort-Object DisplayName

foreach ($log in $logListWin32) {
    Write-Log $log
}
$logListWin32 | Format-Table -AutoSize

# Get Installed Microsoft Store (UWP) Apps
Write-Host "`n=== Installed Microsoft Store (UWP) Apps ===" -ForegroundColor Cyan
$logListUWP = Get-AppxPackage |
    Select-Object Name, PackageFullName, Version | Sort-Object Name

foreach ($log in $logListUWP) {
    Write-Log $log
}
$logListUWP | Format-Table -AutoSize

Run it across your fleet

This script runs as-is on a single host. Paste it into ServerEngine to schedule it, run it on a whole server group in parallel, and keep the credentials out of the file — see the scripts documentation and the credential store.

Ready when you are.

Try ServerEngine free for 7 days.