从Test-Connection返回StatusCode

时间:2012-03-10 18:46:26

标签: powershell

测试连接服务器| select-object *

返回许多属性,其中包括StatusCode。

我怎样才能只返回这个值? 我最好的猜测是

$r = test-connection server
$r.statuscode

但这不起作用。 我该怎么做?

修改

http://msdn.microsoft.com/en-us/library/windows/desktop/aa394350%28v=vs.85%29.aspx提供了有关我希望收到的状态代码的更多信息..还没有运气!

3 个答案:

答案 0 :(得分:4)

默认情况下,

Test-Connection会为您提供一个集合(4个System.Management.ManagementObject个对象)。它在内部使用Win32_PingStatus WMI类。

(Test-Connection server).GetType().FullName

输出:

System.Object[]

所以你可以这样做:

(Test-Connection server -Count 1).StatusCode

或者这个:

(Test-Connection server)[0].StatusCode

不要忘记,有些ping可能会失败,所以如果您只是检查一个ping可能不一定意味着没有连接。

您也可以尝试直接调用Win32_PingStatus

Get-WmiObject -Class Win32_PingStatus -Filter "Address='server'" | Select-Object -Property Address,ResponseTime,StatusCode

答案 1 :(得分:1)

你为什么不尝试:

$r = Test-Connection server -Quiet

$ r是一个布尔值

答案 2 :(得分:1)

$r = test-connection computername -count 1
$r.statuscode

这很有效。