ответ js2010 работает хорошо, даже в старых версиях PowerShell, но требует дублирования имени значения.
В PowerShell v5 или более поздней версии , которую вы можете использоватьвместо этого Get-ItemPropertyValue
командлет , что позволяет избежать дублирования:
$key = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\xxx'
$valueName = 'DisplayVersion' # in PS terminology: *property* name
$valueData = '7.7.1' # in PS terminology: *property value*
if ((Get-ItemPropertyValue $key $valueName) -eq $valueData) {
"installed"
} else {
"NOT installed"
}
Если вместо этого вы ищете конкретное значение свойства (данные значения реестра)) в данном свойстве (значение реестра) среди всех подразделов указанного пути к ключу реестра:
$key = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
$valueName = 'DisplayVersion'
$valueData = '7.7.1'
if (Get-ChildItem $key | Where { $_.GetValue($valueName) -eq $valueData }) {
"installed"
} else {
"NOT installed"
}