我想在多台计算机列表上测试多个条件。
我有一个文件:computers.txt包含:
Computer1
Computer2
Computer3
Computer4
我想要的是一个如下所示的输出文件:
COMPUTER AD-COMPUTER_OBJECT PING abc.com xyz.com
Computer1 True True A Record NULL
Computer2 True True NULL CNAME Record
Computer3 False True A Record NULL
Computer4 False False NULL NULL
AD-COMPUTER_OBJECT使用get-adcomputer测试AD中是否有计算机对象,PING测试使用测试连接查看计算机是否响应ping,abc.com查询abc.com区域nslookup样式,和xyz.com查询xyz.com nslookup样式。
目的是确定计算机是否处于活动状态,以及是否存在过时计算机对象或非活动计算机的DNS记录。
我知道如何使用get-content foreach-object循环单独测试这些条件 - 但我真的想检查所有条件并导出它们的电子表格样式(我显示了它分隔符但export-csv很好)
答案 0 :(得分:0)
要获得所需的格式,您可以使用select-object,这样您就可以定义自己的列并将其导出到csv。
function test-condition {
return 'condition-value'
}
$Computerlist = @("pc1", "pc2", "pc3")
$Results = @()
Foreach ($Computer in $Computerlist)
{
$con1 = test-condition
$con2 = test-condition
$con3 = test-condition
$con4 = test-condition
$Results += $Computer | Select @{N='COMPUTER'; E={$_}}, @{N="Condition 1"; E={$con1}}, @{N="Condition 2"; E={$con2}}, @{N="Condition 3"; E={$con3}}, @{N="Condition 4"; E={$con4}}
}
#In the NL Excel expects the delimiter to be ';'.
$Results | export-csv -Delimiter ';' -NoTypeInformation "$env:USERPROFILE\Desktop\results.csv"
#Format-Table works to
$Results | Format-Table
格式表输出:
COMPUTER Condition 1 Condition 2 Condition 3 Condition 4
-------- ----------- ----------- ----------- -----------
pc1 condition-value condition-value condition-value condition-value
pc2 condition-value condition-value condition-value condition-value
pc3 condition-value condition-value condition-value condition-value