Freigeben über


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 $Falseder 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.

Boolean

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 sudodie 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.