我正在使用以下内容查询服务器列表的防火墙规则。
$servers = Get-Content fw_servers.txt
foreach($serv in $servers) {
$fw = New-Object -ComObject hnetcfg.fwpolicy2
$fw.rules |
Where-Object { $_.enabled -and $_.LocalPorts -like 3389 } |
Select-Object -Property direction,protocol, localports,name
}
我想将此信息导出到csv文件。有人可以告诉我如何使用Export-CSV吗?我已经尝试将它变成一个数组,但它对我不起作用。我正在使用2.0
我也希望导出的数据如下所示
Server Direction Protocol LocalPorts Name
testsrv1 1 6 3389 Remote Desktop (TCP-In)
testsrv2 1 6 3389 Research Remote Desktop Policy
感谢您的帮助。
无肢
答案 0 :(得分:1)
我有一种顿悟,并以某种方式弄明白了。以下,虽然不漂亮,但对我有用。
$servers = Import-CSV fw_servers.csv
$servers | Foreach {
$serv = $_.serv
foreach-object {
$name = $_."Server"
$fw = New-Object -ComObject hnetcfg.fwpolicy2
$fw.rules |
Where-Object { $_.enabled -and $_.LocalPorts -like 3389 } |
Select-Object @{Name="Server"; Expression={$name}}, direction, protocol, localports, name
}
} | Export-CSV C:\Users\trankaa\desktop\fw_res.csv -NoTypeInformation -Force