Проблема, с которой я столкнулся при использовании запроса «GetWmiObject» таблицы Win32_Product, заключается в том, что он ожидает, что установленные программы будут использовать стандартное имя ключа uuid, и я обнаружил, что не все поставщики называют свой ключ реестра таким образом.* С PowerShell я сделал это, чтобы просмотреть все ключи независимо от имени
$reg = Get-ChildItem "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" -Recurse
foreach ($a in $reg) {
if ($a.GetValue("Publisher") -eq 'Publisher_Name') {
Write-Output $a.GetValue("DisplayVersion")
}
}