У меня проблема с методом foreach. Я проверяю в реестре, установлено ли большое количество программ. Как бы я написал это, чтобы сказать, что что-то не установлено один раз, вместо того, чтобы сказать, что что-то не установлено для каждого проверяемого ключа? Теперь, если я помещаю ElseIf, он выполняет «PowerBroker не установлен». около 16 раз. Это связано с тем, что он проверяет каждый ключ и записывает его для каждого ключа, который не находит соответствия отображаемому имени. Как мне проверить ключ и выписать его только один раз, если он не установлен? Спасибо!
$UninstallKeys = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall'
foreach($Key in $UninstallKeys){
if($Key.GetValue("DisplayName") -Match "BeyondTrust"){
$PBW = $Key.GetValue("DisplayName")
$PBWV = $Key.GetValue("DisplayVersion")
if ($PBW) {
$PBW = $PBW, $PBWV
}
else {
$PBW = "PowerBroker not installed."
$installsmissing = "True"
}
}