2016-04-13 20 views
0

このスクリプトにIPアドレスを追加しようとしていますが、これを動作させることができれば完璧です。どんな助けでも大歓迎です。 入力ファイルにはホスト名があり、私はcsvにIPアドレスを取得するのが好きです。テスト接続を使用中にIPアドレスを取得する

$servers = Get-content "servers.txt" 
$collection = $() 
foreach ($server in $servers) 
{ 
    $status = @{ "ServerName" = $server; "TimeStamp" = (Get-Date -f s);"IP" = what to put here? } 
    if (Test-Connection $server -Count 1 -ea 0 -Quiet) 
    { 
     $status["Results"] = "Up" 
    } 
    else 
    { 
     $status["Results"] = "Down" 
    } 
    New-Object -TypeName PSObject -Property $status -OutVariable serverStatus 
    $collection += $serverStatus 

} 
$collection | Export-Csv -LiteralPath .\ServerStatus.csv -NoTypeInformation 

答えて

3

-Quietを使用すると、探している情報が表示されなくなります。静かなものを削除し、結果を変数に取り込み、成功とipaddressの両方を照会することができます。

$status = @{ "ServerName" = $server; "TimeStamp" = (Get-Date -f s)} 
$result = Test-Connection $server -Count 1 -ErrorAction SilentlyContinue 
if ($result) 
{ 
    $status.Results = "Up" 
    $status.IP = ($result.IPV4Address).IPAddressToString 
} 
else 
{ 
    $status.Results = "Down" 
    $status.IP = "N/A" 
} 

このロジックが誤解を招くような情報を生成するかどうかは確信していますが、その場合に備えて遊んでいます。

既にIPv6への切り替えを行っているなら、あなたは `も($result.IPV6Address).IPAddressToString

+1

でより興味があるかもしれません($ result.IPV6Address)サーバーが新しいIP設定に切り替えている場合は、あまりにも動作します.IPAddressToString' :) – krousemw

+0

感謝します!!!!それは素晴らしい仕事でした。 – Steve

+0

これに失敗したNSLOOKUPを追加することはできますか? – Steve

関連する問題