2014-03-27 26 views
3

我用下面的代碼來獲取列表機的狀態和IP地址:車削試驗,連接錯誤到消息

$csv = Get-Content TEST_MACHINES.csv 

    foreach ($computer in $csv) 
    { 
try 
{ 
    Test-Connection $computer -Count 1 | Select-Object Address, IPV4Address 
} 
catch [System.Net.NetworkInformation.PingException] 
{ 
    '$computer is offline.' 
} 
    } 

的目的是讓每一臺機器的IP地址,如果機器處於脫機狀態,則打印「$ computer is offline。」

但是,不是捕捉錯誤並顯示消息,而是顯示整個測試連接錯誤。如何在發生錯誤時只顯示我的消息?

回答

3

Try/Catch中,僅在終止錯誤時調用Catch塊。添加-ErrorAction StopTest-Connection迫使錯誤是終止,因此Catch塊將運行:

Test-Connection $computer -Count 1 -ErrorAction Stop | Select-Object Address, IPV4Address 
+0

談到這裏提及的是,'再/ Catch'將不會在錯誤的時候'測試,連接終止-Quiet'用來。 – user4317867