测试连接服务器| select-object *
返回许多属性,其中包括StatusCode。
我怎样才能只返回这个值? 我最好的猜测是
$r = test-connection server
$r.statuscode
但这不起作用。 我该怎么做?
修改
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394350%28v=vs.85%29.aspx提供了有关我希望收到的状态代码的更多信息..还没有运气!
答案 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
这很有效。