我需要测试远程计算机的三种可能状态:联机,无RPC服务器或无响应。当远程联机但RPC服务器不可用时,我使用try-catch块来捕获非终止条件。我理解为什么下面的代码没有返回No RPC Server的状态,但我不知道应该如何继续。非常感谢任何帮助
$Status = ""
$hostname = Read-host("Enter Computer Name")
if (test-connection $hostname -Count 1 -ErrorAction SilentlyContinue){
$Status = "Online"
Try {
$x = gwmi -Class win32_ComputerSystem -ComputerName $hostname -ErrorAction Stop
}
Catch{
$Status = "No RPC"
Continue
}
}
Else{
$Status = "No Response"
}
$Status
答案 0 :(得分:1)
如果您不需要在该功能中进行任何其他处理,则根本没有理由使用$Status
变量。只需在Return "No RPC"
块中Catch
进行操作(我也会在Else
内同样执行此操作以保持一致性,但这完全取决于您的偏好。)