Test-Connection
Sendet ICMP-Echoanforderungspakete oder Pings an einen oder mehrere Computer.
Syntax
Test-Connection
[-TargetName] <string[]>
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Count <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Repeat
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Traceroute
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-MtuSize
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-TcpPort <int>
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-Count <int>]
[-Delay <int>]
[-Repeat]
[-Quiet]
[-TimeoutSeconds <int>]
[-Detailed]
[<CommonParameters>]
Beschreibung
Das Test-Connection
Cmdlet sendet Echoanforderungspakete (Internet Control Message Protocol, ICMP) oder Pings an einen oder mehrere Remotecomputer und gibt die Echoantworten zurück. Mit diesem Cmdlet können Sie ermitteln, ob ein bestimmter Computer über ein IP-Netzwerk kontaktiert werden kann.
Sie können die Parameter zum Angeben der Test-Connection
Sende- und Empfangscomputer verwenden, um den Befehl als Hintergrundauftrag auszuführen, ein Timeout und eine Anzahl von Pings festzulegen und die Verbindung und Authentifizierung zu konfigurieren.
Gibt im Gegensatz zum vertrauten Pingbefehl Test-Connection
ein TestConnectionCommand+PingStatus-Objekt zurück, das Sie in PowerShell untersuchen können. Der Parameter Quiet gibt einen booleschen Wert in einem System.Boolean-Objekt für jede getestete Verbindung zurück. Wenn mehrere Verbindungen getestet werden, wird ein Array boolescher Werte zurückgegeben.
Beispiele
Beispiel 1: Senden von Echoanforderungen an einen Remotecomputer
In diesem Beispiel werden Echoanforderungspakete vom lokalen Computer an den Server01-Computer gesendet.
Test-Connection -TargetName Server01 -IPv4
Destination: Server01
Ping Source Address Latency BufferSize Status
(ms) (B)
---- ------ ------- ------- ---------- ------
1 ADMIN1 10.59.137.44 24 32 Success
2 ADMIN1 10.59.137.44 39 32 Success
3 ADMIN1 * * * TimedOut
4 ADMIN1 10.59.137.44 28 32 Success
Test-Connection
verwendet den Parameter TargetName , um den Server01-Computer anzugeben. Der IPv4-Parameter gibt das Protokoll für den Test an.
Eine Reihe von TestConnectionCommand+PingStatus-Objekten wird an den Ausgabedatenstrom gesendet, ein Objekt pro Pingantwort vom Zielcomputer.
Beispiel 2: Senden von Echoanforderungen an mehrere Computer
In diesem Beispiel werden Pings vom lokalen Computer an mehrere Remotecomputer gesendet.
Test-Connection -TargetName Server01, Server02, Server12
Beispiel 3: Verwenden von Parametern zum Anpassen des Testbefehls
In diesem Beispiel werden die Parameter zum Anpassen des Test-Connection
Befehls verwendet. Der lokale Computer sendet einen Pingtest an einen Remotecomputer.
Test-Connection -TargetName Server01 -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256
Test-Connection
verwendet den Parameter TargetName , um Server01 anzugeben. Der Parameter Count gibt drei Pings an den Server01-Computer mit einer Verzögerung von 2 Sekunden an.
Sie können diese Optionen verwenden, wenn die Pingantwort voraussichtlich länger dauert als üblich, entweder aufgrund einer erweiterten Anzahl von Hops oder einer Netzwerkbedingung mit hohem Datenverkehr.
Beispiel 4: Ausführen eines Tests als Hintergrundauftrag
In diesem Beispiel wird gezeigt, wie Sie einen Test-Connection
Befehl als PowerShell-Hintergrundauftrag ausführen.
$job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "Servers.txt") }
$Results = Receive-Job $job -Wait
Der Start-Job
Befehl verwendet das Test-Connection
Cmdlet, um viele Computer in einem Unternehmen zu pingen.
Der Wert des TargetName-Parameters ist ein Get-Content
Befehl, der eine Liste der Computernamen aus der Servers.txt
Datei liest. Der Befehl verwendet das Start-Job
Cmdlet, um den Befehl als Hintergrundauftrag auszuführen und speichert den Auftrag in der $job
Variablen.
Der Receive-Job
Befehl wird angewiesen, -Wait
bis der Auftrag abgeschlossen ist, und ruft dann die Ergebnisse ab und speichert sie in der $Results
Variablen.
Beispiel 5: Erstellen einer Sitzung nur, wenn ein Verbindungstest erfolgreich war
In diesem Beispiel wird nur dann eine Sitzung auf dem Server01-Computer erstellt, wenn mindestens einer der an den Computer gesendeten Pings erfolgreich ist.
if (Test-Connection -TargetName Server01 -Quiet) { New-PSSession -ComputerName Server01 }
Das Test-Connection
Cmdlet pingt den Server01
Computer mit dem bereitgestellten Parameter Quiet .
Der resultierende Wert ist, wenn einer der vier Pings erfolgreich ist $True
. Wenn keine der Pings erfolgreich ist, lautet $False
der Wert .
Wenn der Test-Connection
Befehl einen Wert zurückgibt $True
, verwendet der Befehl das New-PSSession
Cmdlet zum Erstellen der PSSession.
Beispiel 6: Verwenden des Traceroute-Parameters
Der in PowerShell 6.0 eingeführte Traceroute-Parameter ordnet eine Route zwischen dem lokalen Computer und dem Remoteziel zu, das Sie mit dem Parameter TargetName angeben.
Test-Connection -TargetName www.google.com -Traceroute
Target: google.com
Hop Hostname Ping Latency Status Source TargetAddress
(ms)
--- -------- ---- ------- ------ ------ -------------
1 172.20.0.1 1 4 Success Lira 172.217.9.174
1 172.20.0.1 2 3 Success Lira 172.217.9.174
1 172.20.0.1 3 2 Success Lira 172.217.9.174
2 12.108.153.193 1 3 Success Lira 172.217.9.174
2 12.108.153.193 2 3 Success Lira 172.217.9.174
2 12.108.153.193 3 2 Success Lira 172.217.9.174
3 12.244.85.177 1 11 Success Lira 172.217.9.174
3 12.244.85.177 2 12 Success Lira 172.217.9.174
3 12.244.85.177 3 12 Success Lira 172.217.9.174
4 * 1 14 DestinationNetw… Lira 172.217.9.174
4 * 2 * TimedOut Lira 172.217.9.174
4 * 3 20 DestinationNetw… Lira 172.217.9.174
5 * 1 * TimedOut Lira 172.217.9.174
5 * 2 15 DestinationNetw… Lira 172.217.9.174
5 * 3 * TimedOut Lira 172.217.9.174
6 * 1 18 DestinationNetw… Lira 172.217.9.174
6 * 2 * TimedOut Lira 172.217.9.174
6 * 3 16 DestinationNetw… Lira 172.217.9.174
7 * 1 * TimedOut Lira 172.217.9.174
7 * 2 * TimedOut Lira 172.217.9.174
7 * 3 * TimedOut Lira 172.217.9.174
8 * 1 * TimedOut Lira 172.217.9.174
8 * 2 * TimedOut Lira 172.217.9.174
8 * 3 * TimedOut Lira 172.217.9.174
9 * 1 * TimedOut Lira 172.217.9.174
9 * 2 * TimedOut Lira 172.217.9.174
9 * 3 * TimedOut Lira 172.217.9.174
10 * 1 * TimedOut Lira 172.217.9.174
10 * 2 * TimedOut Lira 172.217.9.174
10 * 3 * TimedOut Lira 172.217.9.174
11 172.217.9.174 1 23 Success Lira 172.217.9.174
11 172.217.9.174 2 21 Success Lira 172.217.9.174
11 172.217.9.174 3 22 Success Lira 172.217.9.174
Der Test-Connection
Befehl wird mit dem Parameter Traceroute aufgerufen. Die Ergebnisse, die Objekte sind [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus]
, werden im Erfolgsausgabedatenstrom ausgegeben.
Beispiel 7: Abrufen einer detaillierten Ausgabe für einen TCP-Verbindungstest
Wenn Sie den Parameter "Detailed " verwenden, gibt dieses Cmdlet eine detaillierte Information zum Status der TCP-Verbindungsversuche zurück.
Test-Connection bing.com -TCPPort 443 -Detailed -Count 4
Target: bing.com
Id Source Address Port Latency(ms) Connected Status
-- ------ ------- ---- ----------- --------- ------
1 circumflex 2620:1ec:c11::200 443 12 True Success
2 circumflex 2620:1ec:c11::200 443 14 True Success
3 circumflex 2620:1ec:c11::200 443 17 True Success
4 circumflex 2620:1ec:c11::200 443 17 True Success
Parameter
-BufferSize
Gibt die Größe des mit diesem Befehl gesendeten Puffers in Bytes an. Der Standardwert ist 32.
Typ: | Int32 |
Aliase: | Size, Bytes, BS |
Position: | Named |
Standardwert: | 32 |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Count
Gibt die Anzahl der zu sendenden Echoanforderungen an. Der Standardwert ist 4.
Typ: | Int32 |
Position: | Named |
Standardwert: | 4 |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Delay
Gibt das Intervall zwischen Pings in Sekunden an.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Detailed
Wenn Sie den Parameter "Detailed " verwenden, gibt dieses Cmdlet eine detaillierte Information zum Status der TCP-Verbindungsversuche zurück.
Dieser Parameter wurde in PowerShell 7.4 hinzugefügt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-DontFragment
Dieser Parameter legt das Flag "Nicht fragmentieren " im IP-Header fest. Sie können diesen Parameter mit dem Parameter BufferSize verwenden, um die Path MTU-Größe zu testen. Weitere Informationen zur Path MTU finden Sie im Path MTU Discovery-Artikel in wikipedia.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-IPv4
Erzwingt die Verwendung des IPv4-Protokolls für den Test.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-IPv6
Erzwingt das Cmdlet, das IPv6-Protokoll für den Test zu verwenden.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-MaxHops
Legt die maximale Anzahl von Hops fest, die eine ICMP-Anforderungsnachricht gesendet werden kann. Der Standardwert wird vom Betriebssystem gesteuert. Der Standardwert für Windows 10 und höher ist 128 Hops.
Typ: | Int32 |
Aliase: | Ttl, TimeToLive, Hops |
Position: | Named |
Standardwert: | 128 |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-MtuSize
Dieser Parameter wird verwendet, um die Path MTU-Größe zu ermitteln. Das Cmdlet gibt ein PingReply#MTUSize-Objekt zurück, das die Path MTU-Größe an das Ziel enthält. Weitere Informationen zur Path MTU finden Sie im Path MTU Discovery-Artikel in wikipedia.
Typ: | SwitchParameter |
Aliase: | MtuSizeDetect |
Position: | Named |
Standardwert: | False |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Ping
Bewirkt, dass das Cmdlet einen Pingtest durchführen kann. Dies ist der Standardmodus für das Test-Connection
Cmdlet.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | True |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Quiet
Der Parameter Quiet gibt einen booleschen Wert zurück. Wenn Sie diesen Parameter verwenden, werden alle Fehler unterdrückt.
Jede getestete Verbindung gibt einen booleschen Wert zurück. Wenn der Parameter TargetName mehrere Computer angibt, wird ein Array boolescher Werte zurückgegeben.
Wenn ein Ping an ein bestimmtes Ziel erfolgreich ist, $True
wird zurückgegeben.
Wenn alle Pings an ein bestimmtes Ziel fehlschlagen, $False
wird ein Fehler zurückgegeben.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Repeat
Bewirkt, dass das Cmdlet Pinganforderungen kontinuierlich sendet. Wenn der Wert von TargetName ein Array von Zielen ist, wiederholt das Cmdlet die Pinganforderungen nur für das erste Ziel. Sie ignoriert die verbleibenden Ziele. Dieser Parameter kann nicht mit dem Count-Parameter verwendet werden.
Typ: | SwitchParameter |
Aliase: | Continuous |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ResolveDestination
Bewirkt, dass das Cmdlet versucht, den DNS-Namen des Ziels aufzulösen. Bei Verwendung in Verbindung mit dem Traceroute-Parameter werden die DNS-Namen aller Zwischenhosts ggf. ebenfalls abgerufen.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Source
Gibt die Namen der Computer an, von denen der Ping stammt. Geben Sie eine durch Trennzeichen getrennte Liste von Computernamen ein. Die Standardeinstellung ist der lokale Computer.
Hinweis
Dieser Parameter wird in PowerShell-Versionen 6 und höher nicht unterstützt. Wenn Sie diesen Parameter angeben, tritt ein Fehler auf.
Typ: | String |
Position: | Named |
Standardwert: | Local computer |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-TargetName
Gibt die zu testden Computer an. Geben Sie die Computernamen oder IP-Adressen im IPv4- oder IPv6-Format ein.
Typ: | String[] |
Aliase: | ComputerName |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-TcpPort
Gibt die TCP-Portnummer für das Ziel an, das im TCP-Verbindungstest verwendet werden soll.
Das Cmdlet versucht, eine TCP-Verbindung mit dem angegebenen Port für das Ziel herzustellen.
- Das Cmdlet gibt zurück
$True
, wenn eine Verbindung hergestellt wird. - Das Cmdlet gibt zurück
$False
, wenn keine Verbindung hergestellt wird.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-TimeoutSeconds
Legt den Timeoutwert für den Test fest. Der Test schlägt fehl, wenn eine Antwort nicht empfangen wird, bevor das Timeout abläuft. Der Standardwert ist fünf Sekunden.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Typ: | Int32 |
Position: | Named |
Standardwert: | 5 seconds |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Traceroute
Führt dazu, dass das Cmdlet einen Traceroute-Test durchführen kann. Wenn dieser Parameter verwendet wird, gibt das Cmdlet ein TestConnectionCommand+TraceStatus
Objekt zurück.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus
Standardmäßig gibt dieses Cmdlet ein TestConnectionCommand+PingStatus-Objekt für jede Pingantwort zurück.
Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus
Wenn Sie den Parameter Traceroute verwenden, gibt dieses Cmdlet ein TestConnectionCommand+TraceStatus-Objekt für jede Pingantwort entlang der Route zurück.
Wenn Sie die Parameter "Quiet" oder "TcpPort " verwenden, gibt dieses Cmdlet einen booleschen Wert zurück. Wenn das Cmdlet mehrere Verbindungen testet, wird ein Array boolescher Werte zurückgegeben.
Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus
Wenn Sie den Parameter MtuSize verwenden, gibt dieses Cmdlet ein TestConnectionCommand+PingMtuStatus-Objekt für jede Pingantwort zurück.
Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus
Wenn Sie den Parameter "Detailed " verwenden, gibt dieses Cmdlet ein TestConnectionCommand+TcpPortStatus-Objekt zurück, das den Status der TCP-Verbindung anzeigt.
Hinweise
Unter Linux kann sudo
die Verwendung des BufferSize-Parameters oder einer beliebigen Kombination von Parametern mit dem Parametersatz MtuSizeDetect erforderlich sein, der zu einer nicht standardmäßigen Puffergröße von 32 Byte führt. In diesen Fällen löst eine Ausnahme mit einer Meldung aus, die angibt, Test-Command
dass sudo
dies erforderlich ist.