【发布时间】:2013-12-20 18:12:42
【问题描述】:
我正在编写一个脚本来从 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”的异常:“请求的名称有效,但未找到请求类型的数据”
【问题讨论】:
-
here 有什么帮助吗?
-
您遇到的错误是什么?
-
那里似乎没有任何帮助。我已经重新启动并重置了 tcp/ip 堆栈,问题仍然存在。
-
@KevinD 错误在帖子底部。
-
如果您将
Write-Host "'$PCName'"添加为您的日志字符串,您会看到什么
标签: powershell csv gethostbyname