Powershell避免添加重复的防火墙规则Windows 7

时间:2017-09-08 15:48:24

标签: windows powershell

我创建了以下脚本, 但出于某种原因,每次执行脚本时都会继续创建规则,

$RULENAME1 = 'Domain Controllers'
$Rule = netsh advfirewall firewall show rule name="$RULENAME1" $nul

if ($RULENAME1 -eq $Rule) {

echo "Rule "$RULENAME1" already exist."
echo "Hey, you already got a out rule by that name, you cannot put another one in!"

} else {
echo Rule "$RULENAME1" not exist. Creating...
netsh advfirewall firewall add rule name="$RULENAME1"  dir=in action=allow remoteip=10.10.10.10
}

你们可以帮我解决我在这里缺少的事情吗?

编辑: 解决方案是修改此

中的IF语句
"$Rule" -notmatch "No rules match"

1 个答案:

答案 0 :(得分:1)

您可能希望将$RULENAME1 -eq $Rule替换为:

"$Rule" -notmatch "No rules match"
在if语句中,用$Rule包裹"以阻止-notmatch将其视为数组。