# hash table with error code to text translation $StatusCode_ReturnValue = @{ 0='Success' 11001='Buffer Too Small' 11002='Destination Net Unreachable' 11003='Destination Host Unreachable' 11004='Destination Protocol Unreachable' 11005='Destination Port Unreachable' 11006='No Resources' 11007='Bad Option' 11008='Hardware Error' 11009='Packet Too Big' 11010='Request Timed Out' 11011='Bad Request' 11012='Bad Route' 11013='TimeToLive Expired Transit' 11014='TimeToLive Expired Reassembly' 11015='Parameter Problem' 11016='Source Quench' 11017='Option Too Big' 11018='Bad Destination' 11032='Negotiating IPSEC' 11050='General Failure' }
# hash table with calculated property that translates # numeric return value into friendly text
$statusFriendlyText = @{ # name of column Name = 'Status' # code to calculate content of column Expression = { # take status code and use it as index into # the hash table with friendly names # make sure the key is of same data type (int) $StatusCode_ReturnValue[([int]$_.StatusCode)] } }
# calculated property that returns $true when status -eq 0 $IsOnline = @{ Name = 'Online' Expression = { $_.StatusCode -eq0 } }
# do DNS resolution when system responds to ping $DNSName = @{ Name = 'DNSName' Expression = { if ($_.StatusCode -eq0) { if ($_.Address -like'*.*.*.*') { [Net.DNS]::GetHostByAddress($_.Address).HostName } else { [Net.DNS]::GetHostByName($_.Address).HostName } } } }
# convert list of computers into a WMI query string $query = $ComputerName-join"' or Address='"
# ping the specified servers with a given timeout (milliseconds) $TimeoutMillisec = 1000
Get-WmiObject-Class Win32_PingStatus -Filter"(Address='microsoft.com' or Address='r13-c14' or Address='google.com') and timeout=$TimeoutMillisec" | Select-Object-Property Address, StatusCode
Name Category Module Synopsis -------------------------- about_Arithmetic_Operators HelpFile Describes the operators that perform… about_Assignment_Operators HelpFile Describes how to use operators to… about_Comparison_Operators HelpFile Describes the operators that compare… about_Logical_Operators HelpFile Describes the operators that connect… about_Operators HelpFile Describes the operators that are… about_Operator_Precedence HelpFile Lists the Windows PowerShell operators… about_Type_Operators HelpFile Describes the operators that work with…
在 PowerShell ISE 中,仍然可以点击某个列出的 about 主题,并按 F1 查看它的内容。