0

こんにちは皆さん、変数への ping 応答をキャプチャする方法が理にかなっている場合、問題を抱えています。応答をcsvに出力できるようにしたいので。もちろん、完全に間違った方法でこれにアプローチする可能性は非常に高いです!

$PingMachines=import-Csv -path C:\temp\pcs.csv -Header cn,operatingsystem,LastLogonDate

foreach ($pc in $pingmachines.cn) {
    $PingStatus = Gwmi Win32_PingStatus -Filter "Address = '$pc'" | `
    Select-Object StatusCode

    If ($PingStatus.StatusCode -eq 0){ 
        Write-Host $pc "up"
    }     
    Else {
        Write-Host $pc "down"
    }
}

理想的な世界では、出力、つまり pc,pingstatus.statuscode を変数に保存できるようになりたいと思っていますが、最後のオブジェクトを取得するだけでなく、ロジックと変数をインクリメントする方法に苦労しています。

前もって感謝します。

4

3 に答える 3

0

コードを少し書き直しました。これは私のために働く:

$machines = import-csv -path machines.csv -header ip,os,LastLogonDate

foreach ($machine in $machines)
{
    $ip = $machine.ip
    $status = gwmi win32_PingStatus -filter "Address = '$ip'"

    if ($status.StatusCode -eq 0)
    { Write-Host $ip 'up' }
    else
    { Write-Host $ip 'down' }
}

machines.csv次のようなファイルでテストしました。

"127.0.0.1","linux","2012-1-1"
"192.168.1.93","minux","2012-2-10"
"192.168.1.254","xenix","2012-3-20"
"192.168.1.66","dynix","2012-4-5"

実行すると、出力は次のようになります。

PS C:\Users\dharmatech\Documents> C:\Users\dharmatech\Documents\check-machine-status.ps1
127.0.0.1 up
192.168.1.93 up
192.168.1.254 up
192.168.1.66 up
于 2013-05-17T04:50:52.610 に答える