Powershell-在foreach中检查变量的值-如果没有值,则记录其他输出

时间:2018-11-08 16:34:01

标签: powershell

我的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"
        }
}

1 个答案:

答案 0 :(得分:0)

试一下这个脚本。如果我正确理解了需求,它应该为您提供所需的东西。

error_log = /var/log/php-fpm/7.2/error.log