This script demonstrates how to find installed applications using PowerShell on a remote computer
All we have to do is replace the $computerName
value and the script will return the application vendor, name and version for each application installed on the remote computer.
$computerName = "computerName"
$output = Invoke-Command -ComputerName $computerName -ScriptBlock {
Param ($computerName)
$apps = $null
$apps += Get-ItemProperty -Path Registry::HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object @{Name = 'Name'; Expression = {$_.DisplayName}}, @{Name = 'Version'; Expression = {$_.DisplayVersion}}, @{Name = 'Vendor'; Expression = {$_.Publisher}}
$apps += Get-ItemProperty -Path Registry::HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object @{Name = 'Name'; Expression = {$_.DisplayName}}, @{Name = 'Version'; Expression = {$_.DisplayVersion}}, @{Name = 'Vendor'; Expression = {$_.Publisher}}
$apps += Get-WmiObject -Class Win32_Product | Select-Object -Property Name, Version, Vendor
$installedApps = $apps | Sort-Object -Property Name -Unique
return ,$installedApps
} -ArgumentList @($computerName)
foreach($app in $output) {
write-host $app.Vendor $app.Name $app.Version
}

