目前我有以下脚本可以从包含几列的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导入相当新,所以任何有关如何正确导入和导出特定列的帮助将非常有帮助。 我在网上做了一些搜索,但没有任何真正解释清楚或在这种情况下。
提前谢谢。
答案 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)
...
..