如何附加 netsh 防火墙规则,而不仅仅是替换

如何附加 netsh 防火墙规则,而不仅仅是替换

我正在使用脚本在 netsh 中设置防火墙规则。

netsh.exe advfirewall firewall set rule name="Block External IP's" new remoteip="$($ipArray[0])"

我以为使用该设置是为了附加规则而不是替换规则。但是,它覆盖了列表中的先前 IP,并将其替换为数组中的最后一个 IP。我该如何重写它,以便它添加到规则中而不是替换它们?非常感谢您抽出时间和帮助。

答案1

我不确定,但我猜你使用 PowerShell 循环遍历数组$IPArray,并希望将数组中的每个 IP 添加为远程 IP防火墙规则阻止外部 IP

如果这是正确的,那么问题在于netsh没有添加 IP 的选项,任何set remoteip=命令都会覆盖前一个条目。因此,每次循环迭代时,您都会覆盖远程 IP。

我认为解决方案很简单:像以前一样循环遍历数组,但将所有条目组合成$IPArray一个字符串,并以 分隔,。然后字符串应如下所示192.168.1.1,52.3.7.8

最后,问题 netsh命令并将此字符串指定为远程 IP 参数,如下所示(假设您为变量命名RemoteIPString

netsh.exe advfirewall firewall set rule name="Block External IP's" new remoteip="$RemoteIPString"

相关内容