Test-Connection
Wysyła pakiety żądania echa protokołu ICMP lub polecenia ping do co najmniej jednego komputera.
Składnia
Test-Connection
[-ComputerName] <String[]>
[-AsJob]
[-Authentication <AuthenticationLevel>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Test-Connection
[-ComputerName] <String[]>
[-Source] <String[]>
[-AsJob]
[-Authentication <AuthenticationLevel>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Credential <PSCredential>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Test-Connection
[-ComputerName] <String[]>
[-Authentication <AuthenticationLevel>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[-Quiet]
[<CommonParameters>]
Opis
Polecenie cmdlet Test-Connection
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 komputery wysyłające, jak i odbierające, uruchamiać polecenie jako zadanie w tle, ustawiać limit czasu i liczbę poleceń ping oraz skonfigurować połączenie i uwierzytelnianie.
W przeciwieństwie do znanego polecenia ping
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 do określenia komputera 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
Przykład 4. Dostosowywanie polecenia testowego za pomocą parametrów
W tym przykładzie użyto parametrów 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 TargetName do określenia server01. Parametr Count określa trzy polecenia ping są wysyłane do komputera Server01 z Opóźnienie 2-sekundowych interwałów.
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ć polecenie Test-Connection
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
wysyła polecenie ping do wielu komputerów w przedsiębiorstwie. Wartość parametru ComputerName to polecenie Get-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 zapisuje je w zmiennej $Results
.
Przykład 6. Wyślij polecenie ping do komputera zdalnego przy użyciu poświadczeń
To polecenie używa polecenia cmdlet Test-Connection
do ping komputera zdalnego.
Test-Connection Server55 -Credential Domain55\User01 -Impersonation Identify
Polecenie używa parametru Credential
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 polecenia cmdlet Test-Connection
do ping komputera Server01. Polecenie używa parametru Quiet, który zwraca wartość logiczną zamiast obiektu Win32_PingStatus. Wartość jest $True
, jeśli którykolwiek z czterech poleceń ping powiedzie się i w przeciwnym razie $False
.
Jeśli polecenie Test-Connection
zwraca wartość $True
, polecenie używa polecenia cmdlet New-PSSession
do utworzenia PSSession .
Parametry
-AsJob
Wskazuje, że to polecenie cmdlet jest uruchamiane jako zadanie w tle.
Aby użyć tego parametru, komputery lokalne i zdalne muszą być skonfigurowane do komunikacji zdalnej i w systemie Windows Vista i nowszych wersjach systemu operacyjnego Windows, należy otworzyć program PowerShell przy użyciu Uruchom jako administrator opcji. Aby uzyskać więcej informacji, zobacz about_Remote_Requirements.
Po określeniu parametru Receive-Job
.
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 |
-Authentication
Określa poziom uwierzytelniania, który jest używany dla połączenia usługi WMI.
Test-Connection
używa usługi WMI.
Prawidłowe wartości są następujące:
- niezmienione: poziom uwierzytelniania jest taki sam jak poprzednie polecenie.
- domyślne: uwierzytelnianie systemu Windows.
- Brak: brak uwierzytelniania COM.
- Connect: uwierzytelnianie COM na poziomie połączenia.
- wywołanie: uwierzytelnianie COM na poziomie połączenia.
- 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.
Wartość domyślna to Packet, która ma wyliczone wartości 4. Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationLevel wyliczenie.
Typ: | AuthenticationLevel |
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 |
-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.
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 polecenia cmdlet Get-Credential
.
Parametr
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | Current user |
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ślną. 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 |
-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 wartości logicznych.
Jeśli polecenie ping powiedzie się, $True
zostanie zwrócona.
Jeśli wszystkie polecenia ping kończą się niepowodzeniem, $False
zostanie zwrócona.
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 jedną. Na zero pakiet jest odrzucany i zwracany jest błąd. W windowswartość domyślna to 128. Alias parametru TimeToLive to czasu wygaśnięcia.
Typ: | Int32 |
Aliasy: | TTL |
Position: | Named |
Domyślna wartość: | 128 in Windows |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
None
Nie można przekazać danych wejściowych potoku do tego polecenia cmdlet.
Dane wyjściowe
To polecenie cmdlet zwraca obiekt zadania, jeśli określisz parametr AsJob.
Jeśli określisz parametr Quiet, zwraca wartość logiczną . Jeśli testowane jest wiele połączeń, zwracana jest tablica wartości logicznych. W przeciwnym razie Test-Connection
zwraca obiekt Win32_PingStatus dla każdego polecenia ping.
Uwagi
To polecenie cmdlet używa klasy Win32_PingStatus. Polecenie Get-WMIObject Win32_PingStatus
jest równoważne Test-Connection
polecenia.
Zestaw parametrów source został wprowadzony w programie PowerShell 3.0.