Udostępnij za pośrednictwem


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 $Falsewartość .

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

ManagementObject

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 .

Boolean

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.