Powershell测试多个计算机的多个条件

时间:2017-09-22 04:45:59

标签: powershell

我想在多台计算机列表上测试多个条件。

我有一个文件: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很好)

1 个答案:

答案 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