对于我想要允许的每个 IP 地址执行 New-NetFirewallRule 是否是使用 Windows 防火墙和 PowerShell 的唯一选项?文档说 -RemoteAddress 只能是单个 IP 地址、地址范围、子网或关键字(例如,任何),而不能是列表。有什么建议吗?谢谢。
答案1
您可以将每个 IP 放入一个数组,然后循环执行防火墙白名单命令。
$IParray = @('192.168.1.4','8.8.8.8','192.168.1.43','192.168.1.55')
foreach($ip in $IParray)
{
New-NetFirewallRule -DisplayName "Allow $ip" -Direction Inbound -Action Allow -RemoteAddress $ip
}
这将为列表中的每个 IP 创建一个规则,并将每个规则命名为“Allow XXXX”,并将其替换为列表中的当前 IP。