我正在使用脚本在 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"