Všichni ověřujeme možnost přístupu někam po síti pomocí příkazu ping, kterému rozumí příkazová řádka i PowerShell včetně všech jeho parametrů. PowerShell ovšem ukrývá dvojici cmdletů, která nám dává lepší možnosti zjištění síťové dostupnosti služby či zařízení. Tím hlavním je Test-NetConnection, který je vylepšenou obdobou pingu, využívá WMI třídu Win32_PingStatus.
Nejjednodušší podobu udává příklad s obecným dotazem na bing.com:
Test-NetConnection bing.com ComputerName : bing.com
RemoteAddress : 204.79.197.200
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.0.21
PingSucceeded : True
PingReplyDetails (RTT) : 15 ms
Výhodou proti pingu je možnost doptat se na více počítačů najednou, jako v následujícím příkladu, kde jsou počítače rozděleny do skupin dostupných (true) a nedostupných (false)
$computers = "chi-dc01","chi-dc02","chi-dc04","chi-app01","chi-core01"
$computers | group {test-connection -count 1 -ComputerName $_ -quiet}
Další výhodou je možnost ptát se na konkrétní služby, tedy ne jen na to, zda je daný systém online, ale zda je na něm aktivní webserver (http protokol).
Test-NetConnection bing.com -CommonTCPPort HTTP
ComputerName : bing.com
RemoteAddress : 204.79.197.200
RemotePort : 80
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.0.21
TcpTestSucceeded : True
Podporované jsou následující protokoly:
- SMB
- HTTP
- RDP
Druhým příkazem je Test-WSMan, který slouží k detekování možnosti vzdálené správy pomocí PowerShellu.