使用new-netfirewallrule添加防火墙规则时如何从文本文件中读取

时间:2018-05-09 23:32:07

标签: powershell-v4.0 powershell-remoting windows-firewall

我正在尝试创建一个脚本,以便从一个文本文件中读取,我希望逐行向每个服务器添加防火墙规则。

它似乎不是一行一行地阅读它,它看起来只占用我放入的第一行。

$ComputersPath = "C:\temp\kofaxcomputers.txt"

Get-Content $ComputersPath | ForEach {

if ($ComputersPath -ne $null) {

        New-NetFirewallRule -DisplayName "Kofax - KTM" -Direction Inbound -RemoteAddress Any -Action Allow -Protocol TCP -LocalPort 2424
        Write-Host "$_ installed" -ForegroundColor Green;
        } else {
        Write-Host "$_ failed" -ForegroundColor Red;
        }}

1 个答案:

答案 0 :(得分:0)

如果您尝试在一堆计算机中创建防火墙规则,

  • 在您的文本文件中有一个计算机列表(确保没有尾随空格)
  • 从文本文件中读取所有计算机并将其保存在变量中。
  • 使用Invoke-command在所有这些计算机上执行New-NetFireWallRule

     $Computers = get-Content -Path "C:\temp\kofaxcomputers.txt"
    
     Invoke-Command -ComputerName $Computers -ScriptBlock {
         New-NetFirewallRule -DisplayName "Kofax - KTM" -Direction Inbound -RemoteAddress Any -Action Allow -Protocol TCP -LocalPort 2424
     }