0

我正在编写一个脚本来从 CSV 文件加载计算机名称,然后查找它们的 IP 地址。

使用 CSV 中的名称时,脚本会产生错误。

如果我在 ISE 中运行脚本,则会出现错误,但结果仍然存在。如果我从 powershell 运行脚本,它会出错并且结果为空。

如果我用 代替$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”的异常:“请求的名称有效,但未找到请求类型的数据”

4

1 回答 1

0

事实证明,CSV 中的值在某些时候在它们之后添加了空格,这导致了名称查找错误。我不确定为什么 ISE 仍然能够查找主机,但删除空格可以解决问题。

感谢 sha,他的推荐帮助我看到了空白。

于 2013-12-20T20:57:50.377 回答