Freigeben über


Test-Connection

Sendet ICMP-Echoanforderungspakete oder Pings an einen oder mehrere Computer.

Syntax

Test-Connection
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-ComputerName] <String[]>
    [-Count <Int32>]
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [<CommonParameters>]
Test-Connection
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-ComputerName] <String[]>
    [-Count <Int32>]
    [-Credential <PSCredential>]
    [-Source] <String[]>
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [<CommonParameters>]
Test-Connection
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-ComputerName] <String[]>
    [-Count <Int32>]
    [-Impersonation <ImpersonationLevel>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [-Quiet]
    [<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.

Im Gegensatz zum vertrauten Pingbefehl wird ein Win32_PingStatus Objekt zurückgegeben, Test-Connection 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 -ComputerName Server01

Source        Destination     IPV4Address     IPV6Address  Bytes    Time(ms)
------        -----------     -----------     -----------  -----    --------
ADMIN1        Server01         10.59.137.44                32       0
ADMIN1        Server01         10.59.137.44                32       0
ADMIN1        Server01         10.59.137.44                32       0
ADMIN1        Server01         10.59.137.44                32       1

Test-Connection verwendet den Parameter ComputerName , um den Server01-Computer anzugeben.

Beispiel 2: Senden von Echoanforderungen an mehrere Computer

In diesem Beispiel werden Pings vom lokalen Computer an mehrere Remotecomputer gesendet.

Test-Connection -ComputerName Server01, Server02, Server12

Beispiel 3: Senden von Echoanforderungen von mehreren Computern an einen Computer

In diesem Beispiel werden Pings von verschiedenen Quellcomputern an einen einzelnen Remotecomputer , Server01, gesendet.

Test-Connection -Source Server02, Server12, localhost -ComputerName Server01 -Credential Domain01\Admin01

Test-Connection verwendet den Parameter "Credential ", um die Anmeldeinformationen eines Benutzers anzugeben, der über die Berechtigung zum Senden einer Pinganforderung von den Quellcomputern verfügt. Verwenden Sie diesen Befehl, um die Wartezeit von Verbindungen von mehreren Punkten aus zu überprüfen.

Beispiel 4: 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 -ComputerName Server01 -Count 3 -Delay 2 -TTL 255 -BufferSize 256 -ThrottleLimit 32

Test-Connection verwendet den Parameter ComputerName , 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 5: Ausführen eines Tests als Hintergrundauftrag

In diesem Beispiel wird gezeigt, wie Sie einen Test-Connection Befehl als PowerShell-Hintergrundauftrag ausführen.

$job = Test-Connection -ComputerName (Get-Content Servers.txt) -AsJob
if ($job.JobStateInfo.State -ne "Running") {$Results = Receive-Job $job}

Der Test-Connection Befehl pingt viele Computer in einem Unternehmen. Der Wert des ComputerName-Parameters ist ein Get-Content Befehl, der eine Liste der Computernamen aus der Servers.txt file. Der Befehl verwendet den AsJob-Parameter , um den Befehl als Hintergrundauftrag auszuführen und speichert den Auftrag in der $job Variablen.

Der if Befehl überprüft, ob der Auftrag noch nicht ausgeführt wird. Wenn der Auftrag nicht ausgeführt wird, Receive-Job ruft die Ergebnisse ab und speichert sie in der $Results Variablen.

Beispiel 6: Pingen eines Remotecomputers mit Anmeldeinformationen

Dieser Befehl verwendet das Test-Connection Cmdlet zum Pingen eines Remotecomputers.

Test-Connection Server55 -Credential Domain55\User01 -Impersonation Identify

Der Befehl verwendet den Parameter "Credential", um ein Benutzerkonto anzugeben, das über die Berechtigung zum Pingen des Remotecomputers und den Parameter "Identitätswechsel" verfügt, um die Identitätswechselstufe in "Identifizieren" zu ändern.

Beispiel 7: 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 -ComputerName Server01 -Quiet) {New-PSSession Server01}

Der if Befehl verwendet das Test-Connection Cmdlet, um den Server01-Computer zu pingen. Der Befehl verwendet den Parameter Quiet, der anstelle eines Win32_PingStatus Objekts einen booleschen Wert zurückgibt. Der Wert ist, wenn einer der vier Pings erfolgreich ist $True und andernfalls $False.

Wenn der Test-Connection Befehl einen Wert zurückgibt $True, verwendet der Befehl das New-PSSession Cmdlet zum Erstellen der PSSession.

Parameter

-AsJob

Gibt an, dass dieses Cmdlet als Hintergrundauftrag ausgeführt wird. Wenn Sie den AsJob-Parameter angeben, gibt der Befehl sofort ein Objekt zurück, das den Hintergrundauftrag darstellt. Sie können die Sitzung weiterhin verwenden, während der Auftrag abgeschlossen wird. Verwenden Sie das Receive-Job Cmdlet, um die Auftragsergebnisse abzurufen.

Weitere Informationen zu PowerShell-Hintergrundaufträgen finden Sie unter about_Jobs und about_Remote_Jobs.

Typ:SwitchParameter
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-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

-ComputerName

Gibt die zu pingenden Computer an. Geben Sie die Computernamen oder IP-Adressen im IPv4- oder IPv6-Format ein. Platzhalterzeichen sind nicht zulässig. Dieser Parameter ist erforderlich.

Dieser Parameter basiert nicht auf PowerShell-Remoting. Sie können den Parameter ComputerName auch dann verwenden, wenn Ihr Computer nicht für die Ausführung von Remotebefehlen konfiguriert ist.

Hinweis

Der Parameter "ComputerName " wird in PowerShell 6.0 und höher in "TargetName " umbenannt.

Typ:String[]
Aliase:CN, IPAddress, __SERVER, Server, Destination
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
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

-Credential

Gibt ein Benutzerkonto an, das über die Berechtigung zum Senden einer Ping-Anforderung vom Quellcomputer verfügt. Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Domain01\User01", oder geben Sie ein PSCredential-Objekt ein, z. B. eins aus dem Get-Credential Cmdlet.

Der Parameter "Credential " ist nur gültig, wenn der Source-Parameter im Befehl verwendet wird. Die Anmeldeinformationen wirken sich nicht auf den Zielcomputer aus.

Typ:PSCredential
Position:Named
Standardwert:Current user
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DcomAuthentication

Gibt die Authentifizierungsebene an, die dieses Cmdlet mit WMI verwendet. Test-Connection verwendet WMI. Zulässige Werte für diesen Parameter:

  • Default. Windows-Authentifizierung
  • Keine. Keine COM-Authentifizierung
  • Verbinden COM-Authentifizierung auf Verbindungsebene
  • Anruf. COM-Authentifizierung auf Aufrufebene
  • Paket. COM-Authentifizierung auf Paketebene
  • PacketIntegrity. COM-Authentifizierung auf Paketintegritätsebene.
  • PacketPrivacy. COM-Authentifizierung auf Paketdatenschutzebene
  • Unverändert. Identisch mit dem vorherigen Befehl

Der Standardwert ist "Packet ", der einen Aufzählungswert von 4 aufweist. Weitere Informationen zu den Werten dieses Parameters finden Sie unter AuthenticationLevel-Aufzählung .

Typ:AuthenticationLevel
Aliase:Authentication
Zulässige Werte:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Standardwert:Packet (enumerated value of 4)
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Delay

Gibt das Intervall zwischen Pings in Sekunden an.

Typ:Int32
Position:Named
Standardwert:1 (second)
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Impersonation

Gibt die Identitätswechselebene an, die verwendet werden soll, wenn dieses Cmdlet WMI aufruft. Test-Connection verwendet WMI.

Die zulässigen Werte für diesen Parameter sind wie folgt:

  • Default. Standardidentitätswechsel
  • Anonym. Blendet die Identität des Aufrufers aus
  • Identifizieren. Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers abzufragen.
  • Identitätswechsel. Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers zu verwenden.

Der Standardwert ist "Identitätswechsel".

Typ:ImpersonationLevel
Zulässige Werte:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Standardwert:Impersonate
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Protocol

Gibt ein Protokoll an. Die zulässigen Werte für diesen Parameter sind DCOM und WSMan.

Typ:String
Zulässige Werte:DCOM, WSMan
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Quiet

Der Parameter Quiet gibt einen booleschen Wert in einem System.Boolean -Objekt zurück. Wenn Sie diesen Parameter verwenden, werden alle Fehler unterdrückt.

Jede getestete Verbindung gibt einen booleschen Wert zurück. Wenn der Parameter ComputerName mehrere Computer angibt, wird ein Array boolescher Werte zurückgegeben.

Wenn ein Ping erfolgreich ist, $True wird dieser Wert zurückgegeben.

Wenn alle Pings fehlschlagen, $False wird sie zurückgegeben.

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.

Typ:String[]
Aliase:FCN, SRC
Position:1
Standardwert:Local computer
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ThrottleLimit

Gibt die maximale Anzahl von gleichzeitigen Verbindungen an, die zum Ausführen dieses Befehls hergestellt werden können. Wenn Sie diesen Parameter weglassen oder den Wert %%amp;quot;0%%amp;quot; eingeben, wird der Standardwert %%amp;quot;32%%amp;quot; verwendet.

Die Drosselungsgrenze gilt nur für den aktuellen Befehl und nicht für die Sitzung oder den Computer.

Typ:Int32
Position:Named
Standardwert:32
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-TimeToLive

Gibt die maximale Anzahl von Paketen an, die weitergeleitet werden können. Bei jedem Hop in Gateways, Routern usw. wird der TimeToLive-Wert um einen reduziert. Bei Null wird das Paket verworfen und ein Fehler zurückgegeben. In Windows ist der Standardwert 128. Der Alias des TimeToLive-Parameters ist TTL.

Typ:Int32
Aliase:TTL
Position:Named
Standardwert:128 in Windows
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WsmanAuthentication

Gibt den Mechanismus an, der zum Authentifizieren der Benutzeranmeldeinformationen verwendet wird, wenn dieses Cmdlet das WSMan-Protokoll verwendet. Zulässige Werte für diesen Parameter:

  • Grundlegend
  • CredSSP
  • Standard
  • Digest
  • Kerberos
  • Verhandeln.

Der Standardwert lautet Default.

Weitere Informationen zu den Werten dieses Parameters finden Sie unter AuthenticationMechanism Enumeration.

Achtung: Die Authentifizierung des Credential Security Service Provider (CredSSP), bei der die Benutzeranmeldeinformationen an einen Remotecomputer übergeben werden, der authentifiziert werden soll, ist für Befehle konzipiert, die eine Authentifizierung für mehrere Ressourcen erfordern, z. B. den Zugriff auf eine Remotenetzwerkfreigabe. Dieser Mechanismus erhöht das Sicherheitsrisiko des Remotevorgangs. Wenn die Sicherheit des Remotecomputers gefährdet ist, können die an ihn übergebenen Anmeldeinformationen zum Steuern der Netzwerksitzung verwendet werden.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Typ:String
Zulässige Werte:Default, Basic, Negotiate, CredSSP, Digest, Kerberos
Position:Named
Standardwert:Default
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

None

Sie können keine Objekte an dieses Cmdlet weiterleiten.

Ausgaben

ManagementObject

Standardmäßig gibt dieses Cmdlet ein Win32_PingStatus Objekt für jede Pingantwort zurück.

System.Management.Automation.RemotingJob

Dieses Cmdlet gibt ein Auftragsobjekt zurück, wenn Sie den AsJob-Parameter angeben.

Boolean

Wenn Sie den Parameter Quiet verwenden, gibt dies einen booleschen Wert zurück. Wenn das Cmdlet mehrere Verbindungen testet, wird ein Array boolescher Werte zurückgegeben.

Hinweise

Dieses Cmdlet verwendet die Win32_PingStatus Klasse. Ein Get-WMIObject Win32_PingStatus Befehl entspricht einem Test-Connection Befehl.

Der Source-Parametersatz wurde in PowerShell 3.0 eingeführt.