将多个值从文本文件传递给 PowerShell 脚本
Passing multiple values to PowerShell script from text file
我是 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 范围,而不是添加新范围。
从 docs 开始,RemoteAddress 接受字符串数组作为输入(由 [-RemoteAddress ] 中的 [] 表示)。
这能满足您的需求吗?
与您的问题无关 - 我将参数拼凑起来,因为它们对我来说大部分都在屏幕外。
$FirewallParams = @{
DisplayName = 'Block FB'
Direction = 'Outbound'
LocalPort = 'Any'
Protocol = 'TCP'
Action = 'Block'
RemoteAddress = (Get-Content 'C:\Temp\fb.txt')
}
New-NetFirewallRule @FirewallParams
我是 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 范围,而不是添加新范围。
从 docs 开始,RemoteAddress 接受字符串数组作为输入(由 [-RemoteAddress
这能满足您的需求吗? 与您的问题无关 - 我将参数拼凑起来,因为它们对我来说大部分都在屏幕外。
$FirewallParams = @{
DisplayName = 'Block FB'
Direction = 'Outbound'
LocalPort = 'Any'
Protocol = 'TCP'
Action = 'Block'
RemoteAddress = (Get-Content 'C:\Temp\fb.txt')
}
New-NetFirewallRule @FirewallParams