【问题标题】:Powershell script error processing CSV dataPowershell 脚本错误处理 CSV 数据
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-10-25
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多