我对PowerShell还是很陌生,所以请不要怪我,我完全处于黑暗之中……我有一个包含数百个IP范围的文本文件。我要实现的是创建一个防火墙规则,该规则应阻止所有到这些IP范围的出站连接。
我想要一个防火墙规则,所有IP范围都在防火墙规则的“远程IP地址->此范围”下。
以下脚本可以运行,但已创建了500个防火墙规则,每个IP范围一个。我希望所有IP范围都在一个规则中。
我应该使用什么命令代替New-NetFirewallRule
?
$Contents = Get-Content "C:\Temp\fb.txt"
foreach($Line in $Contents) {
New-NetFirewallRule -DisplayName "Block FB" -Direction Outbound -LocalPort Any -Protocol TCP -action Block -RemoteAddress $Line
}
我也尝试过Set-NetFirewallRule
,但是它所做的只是替换IP范围,而不是添加新范围。
从文档中,RemoteAddress接受字符串数组作为输入(由[-RemoteAddress <String []>]中的[]指示)。
这是否可以满足你的需求?与你的问题无关-我对参数进行了喷涂,因为它们对我来说大多不在屏幕上。
$FirewallParams = @{
DisplayName = 'Block FB'
Direction = 'Outbound'
LocalPort = 'Any'
Protocol = 'TCP'
Action = 'Block'
RemoteAddress = (Get-Content 'C:\Temp\fb.txt')
}
New-NetFirewallRule @FirewallParams
做到了,非常感谢。很棒!
好的。如果您将其标记为已回答,则应将其放在队列中较低的位置,以供其他人回答。