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