【发布时间】:2018-05-17 17:40:28
【问题描述】:
我创建了一个添加新防火墙规则的脚本,前提是尚未创建。它检查防火墙规则名称以及流量方向。如果存在相同的防火墙规则名称以及入站或出站连接,则不会创建规则。它从本地机器上的文本文件中读取。
我想要完成的是通过读取其中包含多个服务器名称的文本文件,在此脚本中添加多个防火墙规则。
例如,我正在尝试将 4 个不同的防火墙规则(2 个入站和 2 个出站)添加到单个服务器,但我不知道该怎么做。
防火墙规则名称
- k1(TCP 输入)
- k2(TCP 输出)
- k3(TCP 输入)
- k4(TCP 输出)
代码:
$Computers = get-Content -Path "C:\temp\kofaxcomputers.txt"
Write-host "Checking firewall rules now...." -ForegroundColor Cyan
Invoke-Command -ComputerName $Computers {
$firewallRuleName = "k1 (TCP- In)"
if (Get-NetFirewallRule | ? {$_.DisplayName -eq $firewallRuleName -and ($_.Direction -eq 'Inbound' -or $_.Direction -eq 'Outbound')}) {
Write-host "Firewall rule for '$firewallRuleName' already exists, not creating new rule" -ForegroundColor red
}
else {
Write-host "Firewall rule for '$firewallRuleName' does not already exist, creating new rule now..."
New-NetFirewallRule -DisplayName $firewallRuleName -Direction Inbound -RemoteAddress Any -Action Allow -Protocol TCP -LocalPort 2424
Write-host "Firewall rule for '$firewallRuleName' created successfully" -ForegroundColor Green
}
}
【问题讨论】:
标签: powershell