使用Test-Connection时获取IP地址

时间:2016-04-13 16:04:04

标签: powershell powershell-v2.0 powershell-v3.0

我正在尝试将IP地址添加到此脚本中,如果我能够将其工作,那将是完美的。任何帮助是极大的赞赏。 输入文件有主机名,我喜欢把IP地址输入到csv中。

$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

2 个答案:

答案 0 :(得分:3)

使用Template.apprenticeProfile.events({ 'submit form': function(event,template) { event.preventDefault(); first = template.find('#apFirstName').value; //use value instead of val console.log(first); } }); 会抑制您要查找的信息。删除安静,然后将结果捕获到变量中,然后可以查询成功和ipaddress。

-Quiet

我不确定这种逻辑是否会产生误导性信息,但为了以防万一,我正在玩它。

如果您已切换到IPv6,那么您可能对$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" }

更感兴趣

答案 1 :(得分:0)

谢谢您,马特,您帮助我解决了我的问题。

我发现我无法在新变量中使用(。)。可能是我自己的误会。我发布此消息可能会帮助我解决同样的问题。

根据您的答案以及我如何进行调整的示例。

$status = @{ "ServerName" = $server; "TimeStamp" = (Get-Date -f s)}
$result = Test-Connection $server -Count 1 -ErrorAction SilentlyContinue
    if ($result)
{ 
    $StatusResult =  "Up"
    $statusIP =  ($result.IPV4Address).IPAddressToString
}