2013-12-20 170 views
0

我正在寫一個腳本來從CSV文件中加載計算機名稱,然後查找它們的IP地址。Powershell腳本錯誤處理CSV數據

該腳本在使用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() } 
     } 
    } 
} 

錯誤是:

異常調用「的gethostbyname」與「1」的參數(一個或多個):「的請求的名稱是有效的,但是沒有所請求類型的數據被發現」

+0

什麼是[這裏](http://serverfault.com/questions/373890/ec2-hosted-asp-net-not-stable)有幫助嗎? – shoover

+0

你得到的錯誤是什麼? – KevinD

+0

沒有什麼似乎有幫助的。我重新啓動並重置了tcp/ip堆棧,問題依然存在。 – Stanton

回答

0

原來,CSV中某些點的值後面加了空格,導致名稱查找錯誤。我不確定爲什麼ISE仍然能夠查找主機,但刪除空白可以解決問題。

感謝sha,他的推薦讓我看到了空白。