【发布时间】:2014-09-10 04:23:48
【问题描述】:
目前我有以下脚本可以从包含几列的 csv 文件导入。我感兴趣的是主机名和 IP 地址。 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 导入相当陌生,因此有关如何正确导入和导出特定列的任何帮助都会非常有帮助。 我在网络上进行了一些搜索,但没有一个能真正清楚地解释它或在这种情况下。
提前谢谢你。
【问题讨论】:
-
顺便说一句,您不需要在哈希表中引用名称或在命令周围放置括号,即这工作得很好:
@{ServerName = $hostname; Timestamp = Get-Date -f s}
标签: powershell csv