繁体   English   中英

当源CSV中的一行以上时,PowerShell(测试连接)的CSV输出显示为空白

[英]CSV output from PowerShell (test-connection) appearing blank when more than one line in source CSV

我正在以下脚本中运行:

$ErrorActionPreference = "SilentlyContinue"
$servers = import-csv 'config-network devicetest.csv'
$collection = $()
foreach ( $IPAddress in $servers)
{
$status = @{ "ServerName" = $servers.HostName; "TimeStamp" = (Get-Date -f s) }
if (Test-Connection -IPAddress $servers.IPAddress -Count 1 -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

如果我在CSV文件中一行包含一个主机名和一个IP地址(用于ping),则输出是预期的。

时间戳结果ServerName

2014-09-10T12:57:23 Active Server1(例如)

当我在下一行添加其他IP地址和主机名时,我得到的是空白结果和服务器名; 带有时间戳。

目前对于导入/导出CSV内容还相当陌生,而且距离我深入研究Powershell已有一段时间。 我想让多个条目(上面有一个包含数千个IP地址和主机名的CSV)出现什么缺失?

我也尝试将-delay参数添加到test-connection命令中,但这没有任何效果(虽然运行它似乎没有任何延迟)。 另外,我还添加了erroractionpreference(用于$ IPaddress列中的任何空白字段)。

任何帮助将不胜感激,因为我对此感到困惑。

在您的foreach循环中,将$ servers替换为$ IPAddress

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM