Test-Connection
Wysyła pakiety żądania echa protokołu ICMP lub polecenia ping do co najmniej jednego komputera.
Składnia
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>]
Opis
Polecenie Test-Connection
cmdlet wysyła pakiety żądań echa protokołu ICMP (Internet Control Message Protocol) do co najmniej jednego komputera zdalnego i zwraca odpowiedzi echa. Tego polecenia cmdlet można użyć do określenia, czy dany komputer może być kontaktowany w sieci IP.
Możesz użyć parametrów Test-Connection
, aby określić zarówno wysyłanie, jak i odbieranie komputerów, aby uruchomić polecenie jako zadanie w tle, aby ustawić limit czasu i liczbę poleceń ping oraz skonfigurować połączenie i uwierzytelnianie.
W przeciwieństwie do znanego polecenia ping zwraca Test-Connection
obiekt Win32_PingStatus, który można zbadać w programie PowerShell. Parametr Quiet zwraca wartość logiczną w obiekcie System.Boolean dla każdego przetestowanego połączenia. Jeśli testowane jest wiele połączeń, zwracana jest tablica wartości logicznych.
Przykłady
Przykład 1. Wysyłanie żądań echa do komputera zdalnego
Ten przykład wysyła pakiety żądania echa z komputera lokalnego do komputera Server01.
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
używa parametru ComputerName , aby określić komputer Server01.
Przykład 2. Wysyłanie żądań echa do kilku komputerów
Ten przykład wysyła polecenia ping z komputera lokalnego do kilku komputerów zdalnych.
Test-Connection -ComputerName Server01, Server02, Server12
Przykład 3. Wysyłanie żądań echa z kilku komputerów do komputera
Ten przykład wysyła polecenia ping z różnych komputerów źródłowych do jednego komputera zdalnego Server01.
Test-Connection -Source Server02, Server12, localhost -ComputerName Server01 -Credential Domain01\Admin01
Test-Connection
Używa parametru Credential w celu określenia poświadczeń użytkownika, który ma uprawnienia do wysyłania żądania ping z komputerów źródłowych. Użyj tego formatu polecenia, aby przetestować opóźnienie połączeń z wielu punktów.
Przykład 4. Dostosowywanie polecenia testowego za pomocą parametrów
W tym przykładzie użyto parametrów polecenia Test-Connection
w celu dostosowania polecenia. Komputer lokalny wysyła test ping do komputera zdalnego.
Test-Connection -ComputerName Server01 -Count 3 -Delay 2 -TTL 255 -BufferSize 256 -ThrottleLimit 32
Test-Connection
używa parametru ComputerName do określenia Server01. Parametr Count określa trzy polecenia ping są wysyłane do komputera Server01 z opóźnieniem 2-sekundowym.
Te opcje mogą być używane, gdy oczekiwano, że odpowiedź ping będzie trwać dłużej niż zwykle, ze względu na rozszerzoną liczbę przeskoków lub stan sieci o dużym natężeniu ruchu.
Przykład 5. Uruchamianie testu jako zadania w tle
W tym przykładzie pokazano, jak uruchomić Test-Connection
polecenie jako zadanie w tle programu PowerShell.
$job = Test-Connection -ComputerName (Get-Content Servers.txt) -AsJob
if ($job.JobStateInfo.State -ne "Running") {$Results = Receive-Job $job}
Polecenie Test-Connection
pinguje wiele komputerów w przedsiębiorstwie. Wartość parametru ComputerName jest poleceniemGet-Content
, które odczytuje listę nazw komputerów z .Servers.txt file
Polecenie używa parametru AsJob , aby uruchomić polecenie jako zadanie w tle i zapisuje zadanie w zmiennej $job
.
Polecenie if
sprawdza, czy zadanie nie jest jeszcze uruchomione. Jeśli zadanie nie jest uruchomione, Receive-Job
pobiera wyniki i przechowuje je w zmiennej $Results
.
Przykład 6. Wyślij polecenie ping do komputera zdalnego przy użyciu poświadczeń
To polecenie używa Test-Connection
polecenia cmdlet do ping komputera zdalnego.
Test-Connection Server55 -Credential Domain55\User01 -Impersonation Identify
Polecenie używa parametru Credential , aby określić konto użytkownika, które ma uprawnienia do ping komputera zdalnego i parametr Personifikacja , aby zmienić poziom personifikacji na Identyfikowanie.
Przykład 7: Tworzenie sesji tylko wtedy, gdy test połączenia zakończy się pomyślnie
W tym przykładzie jest tworzona sesja na komputerze Server01 tylko wtedy, gdy co najmniej jeden z poleceń ping wysłanych do komputera zakończy się pomyślnie.
if (Test-Connection -ComputerName Server01 -Quiet) {New-PSSession Server01}
Polecenie if
używa Test-Connection
polecenia cmdlet do ping komputera Server01. Polecenie używa parametru Quiet , który zwraca wartość logiczną zamiast obiektu Win32_PingStatus . Wartość to $True
, jeśli którykolwiek z czterech poleceń ping powiedzie się i w przeciwnym razie $False
wartość .
Test-Connection
Jeśli polecenie zwraca wartość $True
, polecenie używa New-PSSession
polecenia cmdlet do utworzenia psSession.
Parametry
-AsJob
Wskazuje, że to polecenie cmdlet jest uruchamiane jako zadanie w tle. Po określeniu parametru AsJob polecenie natychmiast zwraca obiekt reprezentujący zadanie w tle. Możesz kontynuować pracę w sesji, gdy zadanie zostanie zakończone. Aby uzyskać wyniki zadania, użyj Receive-Job
polecenia cmdlet .
Aby uzyskać więcej informacji na temat zadań w tle programu PowerShell, zobacz about_Jobs i about_Remote_Jobs.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-BufferSize
Określa rozmiar w bajtach buforu wysyłanego za pomocą tego polecenia. Wartość domyślna to 32.
Typ: | Int32 |
Aliasy: | Size, Bytes, BS |
Position: | Named |
Domyślna wartość: | 32 |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ComputerName
Określa komputery do ping. Wpisz nazwy komputerów lub wpisz adresy IP w formacie IPv4 lub IPv6. Symbole wieloznaczne nie są dozwolone. Ten parametr jest wymagany.
Ten parametr nie polega na komunikacji zdalnej programu PowerShell. Można użyć parametru ComputerName , nawet jeśli komputer nie jest skonfigurowany do uruchamiania poleceń zdalnych.
Uwaga
Nazwa parametru ComputerName została zmieniona na TargetName w programie PowerShell 6.0 lub nowszym.
Typ: | String[] |
Aliasy: | CN, IPAddress, __SERVER, Server, Destination |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Count
Określa liczbę żądań echa do wysłania. Wartość domyślna to 4.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | 4 |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Określa konto użytkownika, które ma uprawnienia do wysyłania żądania ping z komputera źródłowego. Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential , taki jak jeden z Get-Credential
polecenia cmdlet.
Parametr Credential jest prawidłowy tylko wtedy, gdy parametr źródłowy jest używany w poleceniu . Poświadczenia nie mają wpływu na komputer docelowy.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | Current user |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-DcomAuthentication
Określa poziom uwierzytelniania używany przez to polecenie cmdlet z usługą WMI.
Test-Connection
używa usługi WMI.
Dopuszczalne wartości tego parametru to:
- Domyślne. Uwierzytelnianie systemu Windows
- Brak. Brak uwierzytelniania COM
- Połącz. Uwierzytelnianie COM na poziomie połączenia
- Połączenie. Uwierzytelnianie COM na poziomie wywołań
- Pakiet. Uwierzytelnianie COM na poziomie pakietów
- PacketIntegrity. Uwierzytelnianie COM na poziomie integralności pakietów
- PacketPrivacy. Uwierzytelnianie COM na poziomie prywatności pakietów
- Bez zmian. Tak samo jak poprzednie polecenie
Wartość domyślna to Pakiet , który ma wyliczona wartość 4. Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationLevel , wyliczenie.
Typ: | AuthenticationLevel |
Aliasy: | Authentication |
Dopuszczalne wartości: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Domyślna wartość: | Packet (enumerated value of 4) |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Delay
Określa interwał między poleceniami ping w sekundach.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | 1 (second) |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Impersonation
Określa poziom personifikacji do użycia, gdy to polecenie cmdlet wywołuje usługę WMI. Test-Connection
używa usługi WMI.
Dopuszczalne wartości tego parametru są następujące:
- Domyślne. Personifikacja domyślna.
- Anonimowe. Ukrywa tożsamość obiektu wywołującego.
- Zidentyfikuj. Umożliwia obiektom wykonywanie zapytań dotyczących poświadczeń obiektu wywołującego.
- Personifikuj. Umożliwia obiektom używanie poświadczeń obiektu wywołującego.
Wartość domyślna to Personifikuj.
Typ: | ImpersonationLevel |
Dopuszczalne wartości: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Domyślna wartość: | Impersonate |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Protocol
Określa protokół. Dopuszczalne wartości tego parametru to DCOM i WSMan.
Typ: | String |
Dopuszczalne wartości: | DCOM, WSMan |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Quiet
Parametr Quiet zwraca wartość logiczną w obiekcie System.Boolean. Użycie tego parametru pomija wszystkie błędy.
Każde przetestowane połączenie zwraca wartość logiczną. Jeśli parametr ComputerName określa wiele komputerów, zwracana jest tablica wartości logicznych.
Jeśli polecenie ping powiedzie się, $True
zostanie zwrócone.
Jeśli wszystkie polecenia ping kończą się niepowodzeniem, $False
zostanie zwrócony.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Source
Określa nazwy komputerów, z których pochodzi polecenie ping. Wprowadź rozdzielaną przecinkami listę nazw komputerów. Wartość domyślna to komputer lokalny.
Typ: | String[] |
Aliasy: | FCN, SRC |
Position: | 1 |
Domyślna wartość: | Local computer |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ThrottleLimit
Określa maksymalną liczbę połączeń współbieżnych, które można ustanowić w celu uruchomienia tego polecenia. Jeśli pominiesz ten parametr lub wprowadź wartość 0, zostanie użyta wartość domyślna 32.
Limit ograniczania ma zastosowanie tylko do bieżącego polecenia, a nie do sesji ani do komputera.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | 32 |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-TimeToLive
Określa maksymalny czas przekazywania pakietu. Dla każdego przeskoku w bramach, routerach itp. wartość TimeToLive jest zmniejszana o jeden. Na zero pakiet jest odrzucany i zwracany jest błąd. W systemie Windows wartość domyślna to 128. Alias parametru TimeToLive to TTL.
Typ: | Int32 |
Aliasy: | TTL |
Position: | Named |
Domyślna wartość: | 128 in Windows |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WsmanAuthentication
Określa mechanizm używany do uwierzytelniania poświadczeń użytkownika, gdy to polecenie cmdlet używa protokołu WSMan. Dopuszczalne wartości tego parametru to:
- Podstawowy
- Protokół CredSSP
- Wartość domyślna
- Trawić
- Kerberos
- Negocjować.
Wartość domyślna to Wartość domyślna.
Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationMechanism Enumeration (Wyliczenie AuthenticationMechanism).
Uwaga: uwierzytelnianie dostawcy usług zabezpieczeń poświadczeń (CredSSP), w którym poświadczenia użytkownika są przekazywane do komputera zdalnego do uwierzytelnienia, jest przeznaczone dla poleceń wymagających uwierzytelniania w więcej niż jednym zasobie, takich jak uzyskiwanie dostępu do zdalnego udziału sieciowego. Ten mechanizm zwiększa ryzyko bezpieczeństwa operacji zdalnej. W przypadku naruszenia zabezpieczeń komputera zdalnego poświadczenia przekazywane do niego mogą służyć do kontrolowania sesji sieciowej.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | String |
Dopuszczalne wartości: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Position: | Named |
Domyślna wartość: | Default |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
None
Nie można potokować obiektów do tego polecenia cmdlet.
Dane wyjściowe
Domyślnie to polecenie cmdlet zwraca obiekt Win32_PingStatus dla każdej odpowiedzi ping.
System.Management.Automation.RemotingJob
To polecenie cmdlet zwraca obiekt zadania, jeśli określisz parametr AsJob .
Jeśli używasz parametru Quiet, zwraca wartość logiczną. Jeśli polecenie cmdlet testuje wiele połączeń, zwraca tablicę wartości logicznych.
Uwagi
To polecenie cmdlet używa klasy Win32_PingStatus . Polecenie Get-WMIObject Win32_PingStatus
jest równoważne z poleceniem Test-Connection
.
Zestaw parametrów źródłowych został wprowadzony w programie PowerShell 3.0.