2016-04-13 38 views
0

Bu betiğe IP adresini eklemeye çalışıyorum, işe yarayabilseydim mükemmel olurdu. Herhangi bir yardım büyük beğeni topluyor. Giriş dosyaları ana bilgisayar adlarına sahiptir ve IP adresini csv'ye almak istiyorum lütfen.Test-Bağlantısı kullanılırken IP adresi alma

$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 

cevap

3

Aradığınız bilgiyi bastırmak istiyorum -Quiet kullanma. Sessizliği kaldırın ve sonuçta hem başarı hem de ipadresi için sorgulayabileceğiniz bir değişkende sonuçları yakalayın. Bu mantık yanıltıcı bilgi üretecektir eğer

$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" 
} 

emin oldum ama her ihtimale karşı onunla etrafında oynuyorum.

zaten IPv6'ya geçiş o zaman da ($result.IPV6Address).IPAddressToString

+1

fazla ilgi olabileceğini yaptıysanız 'Sunucularınız yeni IP yapılandırması bölümüne geçtikten eğer çok çalışır .IPAddressToString' ($ result.IPV6Address) :) – krousemw

+0

TEŞEKKÜRLER !!!! Bu harika çalıştı. – Steve

+0

Başarısız olanlara bir NSLOOKUP ekleyebilir miyim? – Steve