将多个值从文本文件传递给 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