测试连接输出到带有主机名和IP地址的csv文件

时间:2014-09-10 04:23:48

标签: powershell csv

目前我有以下脚本可以从包含几列的csv文件导入。我感兴趣的是Hostname和Ipaddress。 Ipaddress =服务器的IP地址 主机名 - 服务器的主机名

基本上我的目标是审核CMDB中当前活动的服务器(很多旧垃圾未被正确删除)

$servers = import-csv 'config-network devicetest.csv'
$collection = $()
foreach ( $IPAddress in $servers)
{
$status = @{ "ServerName" = $Hostname; "TimeStamp" = (Get-Date -f s) }
if (Test-Connection -IPAddress $IPAddress -Count 2 -ea 0 -quiet)
{ 
    $status["Results"] = "Active"
} 
else 
{ 
    $status["Results"] = "Inactive" 
}
New-Object -TypeName PSObject -Property $status -OutVariable serverStatus
$collection += $serverStatus

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

我的目标是在每个IP地址上运行测试连接并输出到具有时间戳/结果/服务器名称(作为主机名)的文件。

目前我总是得到“非活动”的结果,我认为这是因为我没有从csv调用正确的字段。 我从csv导入相当新,所以任何有关如何正确导入和导出特定列的帮助将非常有帮助。 我在网上做了一些搜索,但没有任何真正解释清楚或在这种情况下。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

Try to change these lines:

$status = @{ "ServerName" = $IPAddress.Hostname; "TimeStamp" = (Get-Date -f s); "Results"="" }
...
....
(Test-Connection -IPAddress $IPAddress.ipaddress -Count 2 -ea 0 -quiet)
...
..