PowerShell ICMP Ping mit Test-Connection
Ping unter Windows 10 beschränkt sich nicht mehr nur zur Ausführung aus dem Command Prompt, dabei wartet Ping in der PowerShell mit zusätzlichen Möglichkeiten auf. Das Cmdlet Test-Connection in der PowerShell 7 enthält erweiterte Funktionen, wie Repeat und Traceroute oder als Ping Prozess im Hintergrund.

Beispiele mit Test-Connection
Das Cmdlet Test-Connection sendet ICMP Echo-Anforderungspakete (Internet Control Message Protocol) an einen oder mehrere durch Komma getrennte Remote-Hosts und gibt die Echo Antworten zurück.
1 2 |
PS C:\> Test-Connection 8.8.8.8, 8.8.4.4, time.google.com |
Mit der Option -Repeat wird wie dies von Ping bekannt ist, ICMP Anfragen an den angegebenen Host gesendet, bis zur Beendigung des Vorgangs, durch die Eingabe von CTRL+BREAK.
1 2 |
PS C:\> Test-Connection 1.1.1.1 -Repeat |
Dieses Beispiel zeigt, wie ein Test-Connection Befehl als PowerShell Hintergrund Job ausgeführt wird.
1 2 3 |
PS C:\> $job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "Servers.txt") } $Results = Receive-Job $job -Wait |
Routenverfolgung – Traceroute mit dem Test-Connection in der PowerShell.
Der in PowerShell 6.0 eingeführte Parameter Traceroute ordnet eine Routenverfolgung an, zwischen dem lokalen Computer und dem Remote-Ziel, das mit Parameter angegeben wird.
1 2 |
PS C:\> Test-Connection www.google.com -Traceroute -IPv4 |
In einem weiteren Beispiel werden Parameter verwendet um den Befehl Test-Connection anzupassen. Der lokale Computer sendet einen Ping-Test an einen Remotecomputer.
1 2 |
PS C:\> Test-Connection -TargetName Server10 -Count 4 -Delay 2 -MaxHops 128 -BufferSize 256 |
Dieses Cmdlet ist ab PowerShell 6.0 und neuer verfügbar.
Test-Connection TCP Port Parameter
Der Parameter -TcpPort gibt die TCP-Portnummer zum Ziel an, die im TCP-Verbindungstest verwendet werden soll. Das Cmdlet versucht, eine TCP-Verbindung mit angegebenen Port zum Ziel herzustellen.
1 2 |
PS C:\> Test-Connection -TargetName isc.org -TcpPort 443 |
Wenn eine Verbindung hergestellt werden kann, wird $True zurückgegeben. Kann keine Verbindung hergestellt werden, wird $False zurückgegeben. Der Paramter -TcpPort ist ab PowerShell 7.0 und neuer verfügbar.
Test-Connection MTU Size Parameter
Der Parameter -MtuSize wird verwendet, um die Pfad MTU Größe zu ermitteln.
1 2 |
PS C:\> Test-Connection -TargetName ripe.org -MtuSize |
Das Cmdlet gibt ein PingReply#MTUSize Objekt zurück, das die Pfad MTU Größe zum Ziel enthält, es ist ab PowerShell 7.0 und neuer verfügbar.
Test-Connection Parameter Quiet
Der Parameter -Quiet gibt einen booleschen Wert zurück. Die Verwendung dieses Parameters unterdrückt alle Fehler.
1 2 |
PS C:\> Test-Connection -TargetName iana.org -Quiet |
Dieses Cmdlet ist ab PowerShell 7.0 und neuer verfügbar.
PowerShell Remoting Test-Connection
Im nächsten Beispiel wird eine Sitzung zum Server2 erstellt, wenn mindestens einer der an den Computer gesendeten Pings erfolgreich ist. Hierzu muss auf dem Remote Computer TrustedHosts konfiguriert werden.
1 2 |
PS C:\> if (Test-Connection -TargetName Server2 -Quiet) { New-PSSession -ComputerName Server2 } |
Um HTTP für PowerShell-Remoting zu verwenden, führt man folgenden Befehl auf dem Remote-Host aus, von einem als Administrator geöffneten (cmd) Command Prompt.
1 2 |
C:\> winrm quickconfig |
Die TrustedHosts-Konfigurationseinstellung erfolgt durch ausführen von winrm.cmd mit der Option config/client auf dem Remote-Host.
1 2 |
winrm set winrm/config/client @{TrustedHosts="192.168.1.2"} |
Anfragen von 192.168.1.2 werden angenommen. Die Abfrage der Globale Konfiguration von WinRM ist wie folgt.
1 2 |
C:\> winrm get winrm/config/client |