我正在编写一个脚本来从CSV文件加载计算机名称,然后查找其IP地址。
使用CSV中的名称时,脚本会产生错误。
如果我在ISE中运行脚本,则会显示错误,但结果仍然存在。如果我从powershell运行脚本,则会出错,结果为null。
如果我用$PCname = $_.System
代替$PCname = "Computer01"
,一切正常。
如果我写主持人$_.System
,则显示"Computer01"
。我怎样才能在PowerShell中使用它?
$file = "\\server.contoso.net\private$\Systems.csv";
$CSV = Import-CSV $file;
$CSV | %{
if ($_.Skip -eq 0)
{
$PCname = $_.System
# $PCname = "Computer01"
write-host $PCname
try
{
$ipaddress = [System.Net.Dns]::GetHostByName($PCname).AddressList[0].IpAddressToString
}
Catch [system.exception]
{
if(1)
{ $error[0].tostring() }
}
}
}
显示的错误是:
使用“1”参数调用“GetHostByName”的异常:“请求的名称有效,但未找到所请求类型的数据”
答案 0 :(得分:0)
原来,CSV中的值在某些时候后面添加了空格,这导致名称查找错误。我不确定为什么ISE仍然可以查找主机,但删除空格可以解决问题。
感谢sha,他的建议帮助我看到了空白。