Test-ühendus PowerShellis: cmdleti täielik juhend

Viimane uuendus: 14/08/2025
Autor: Isaac
  • Test-Connection pakub struktureeritud väljundiga ping-, traceroute-, MTU- ja TCP-teste.
  • En PowerShell 6/7 muudab süntaksit, tagastustüüpe ja lisab parameetreid, näiteks -Traceroute ja -Detailed.
  • Windows PowerShell 5.1 kasutab WMI-d ja Win32_PingStatus'it autentimis- ja isikustamise valikutega.
  • -Quiet tagastab tõeväärtused, -Repeat itereerib pidevalt ja -MtuSize arvutab tee MTU-d.

Testühenduse juhend PowerShellis

Kui töötate Windowsi, Linuxi või macOS-i võrkudega, tahate varem või hiljem kontrollida, kas host vastab ja kui heas korras on ühenduse tee. Test-Connection cmdlet on tänapäevane Šveitsi armee nuga ICMP pingide, traceroute'i, MTU tuvastamise ja TCP testimise jaoks PowerShelli abil , mille struktureeritud väljundit saab filtreerida ja töödelda.

Lisaks on cmdleti ajalool kaks külge: klassikalises Windows PowerShellis (5.1) tugines see WMI-le ja tagastas Win32_PingStatus väärtuse , samas kui PowerShell 6-s ja uuemates versioonides kujundati cmdlet ümber ja laiendati platvormideüleseks kasutamiseks ning see kuvas spetsiifilisi objekte, nagu PingStatus, TraceStatus ja TcpPortStatus. Mõlema parameetrite ja väljundite komplekti mõistmine võimaldab põhjalikku ja täpset diagnoosi.

Mis on Test-Connection ja mida see lahendab?

Test-Connection saadab ICMP kajapäringuid (pinge) ühele või mitmele sihtkohale ja tagastab vastused ; see saab ka marsruuti jälgida, tee MTU-d arvutada ja TCP-pordi kättesaadavust kontrollida. Erinevalt traditsioonilisest ping-käsust tagastab see cmdlet rikkalikke objekte, mida saab suunata, filtreerida ja teisendada aruanneteks või armatuurlaudadeks.

Oma tänapäevases versioonis lisab cmdlet parameetreid nagu -Traceroute, -MtuSize, -TcpPort, -Repeat, -TimeoutSeconds, -IPv4/-IPv6 ja -Detailed (viimane lisati PowerShelli versioonis 7.4 TCP-katsete jaotamiseks). Parameetriga -Quiet saate skriptides kiirete otsuste tegemiseks piirata väljundit sihtkoha kohta tõeväärtustega.

Keskkondades, kus varem kombineerisite pingi, tracerti, nslookupi või telneti, pakub PowerShell natiivseid valikuid, mis katavad praktiliselt kogu ühenduvusdiagnostika ühest tööriistast . Ja kui eelistate teistsugust lähenemisviisi, on kombineeritud võrgukontrollide jaoks olemas Test-NetConnection, kuid see artikkel keskendub Test-Connectioni maksimaalsele ärakasutamisele.

Peamised muudatused: Windows PowerShell 5.1 vs PowerShell 6/7

Cmdleti evolutsioonis on kaks selget etappi. Windows PowerShelli 5.1 ja varasemates versioonides kasutab cmdlet WMI-d ja tagastab Win32_PingStatus väärtuse ; see kuvab parameetreid, näiteks -ComputerName, -AsJob, -DcomAuthentication, -Impersonation, -Protocol, -ThrottleLimit, -TimeToLive (TTL) ja -WsmanAuthentication.

PowerShelli versioonile 6+ üleminekuga kirjutati cmdlet ümber platvormideüleseks ja selle API-t muudeti : nüüd kasutatakse parameetrit -TargetName (mitte parameetrit -ComputerName), ilmuvad parameetrite komplektid Ping/Repeat/Traceroute/MtuSize/TcpPort, väljundid on kindlat tüüpi, näiteks PingStatus, TraceStatus, PingMtuStatus või TcpPortStatus , ning TCP jaoks on kaasatud parameetrid -TimeoutSeconds, -ResolveDestination ja -Detailed (7.4).

See tähendab, et kaasaskantavate skriptide kirjutamisel peate tuvastama versiooni ning vastavalt kohandama parameetreid ja väljundtöötlust. Üks võimalus on katta mõlemad maailmad tingimuslike harudega ($PSVersionTable.PSVersion.Major).

Kaasaegne süntaks ja parameetrikomplektid (PowerShell 6+)

Cmdlet pakub mitmeid parameetrite komplekte, mis aktiveerivad erinevaid režiime . Siin on ülevaade selle peamistest valikutest:

  • Vaikimisi pingTestühendus
  • Korda pingiTestühendus -Korda
  • TracerouteTestühendus -Traceroute
  • MtuSizeDetectTestühendus -MtuSuure
  • TcpPortTestühendus -TcpPort
  Kuidas ACPI probleeme samm-sammult lahendada

Kõigis režiimides on -TargetName kohustuslik ja aktsepteerib DNS-nimesid või IPv4/IPv6 aadresse . Pingi vaikeväljund on PingStatus-objektide jada, üks iga kaja kohta.

Cmdleti süntaks ja näited

Klassikaline süntaks (Windows PowerShell 5.1)

Windows PowerShell 5.1 keskkondades kasutatakse teisi signatuure , mille keskseks parameetriks on -ComputerName ja millel on mitu WMI autentimisvõimalust:

  • vaikimisiTestühendus
  • allikasTestühendus
  • VaikneTestühendus

Sellisel juhul on vaikeväljundiks ManagementObject Win32_PingStatus ja -AsJob korral tagastatakse tööobjekt (System.Management.Automation.RemotingJob).

Kaasaegsed parameetrid, ükshaaval selgitatud

-TargetName <string[]> : Testitavad sihtmärgid, toetab IPv4/IPv6 nimesid ja aadresse; positsioon 0 ja kohustuslik; aktsepteerib torujuhtme loomist väärtuse ja atribuudi nime järgi.

-Ping : sunnib ICMP pingirežiimi; see on vaikekäitumine, seega jäetakse see tavaliselt välja, välja arvatud teatud kombinatsioonide puhul.

-Repeat : saadab pingisid pidevalt; kui annate mitu sihtkohta, kordub see ainult esimese kohal ja jätab ülejäänud vahele ; ei ühildu pingi -Count funktsiooniga.

-Traceroute : Jälgib marsruuti sihtkohta, tagastades iga hüppe kohta TraceStatus objekte; PowerShell 6-st ja ühildub -ResolveDestination-iga vahepealsete DNS-nimede jaoks.

-MtuSize : tuvastab sihtkohani viiva MTU teekonna, tagastades PingMtuStatuse koos efektiivse MTU suurusega ; kasulik koos -DontFragment ja -BufferSize'iga.

-TcpPort <int> : proovib avada TCP-ühenduse sihtkohas määratud pordiga; tagastab $true või $false (ja -Detailsed versioonis 7.4 TcpPortStatus objektid koos latentsuste ja teabega iga katse kohta).

-Count <int> : kajapäringute arv; vaikimisi 4 pingis ja kehtib ka TcpPortiga.

-Delay <int> : sekundid katsete vahel; kasulik ülekoormuse või pikaajalise testimise korral.

-BufferSize <int> : kasuliku koormuse baidid; vaikimisi 32 ; kohandub koos -DontFragment-iga MTU testimiseks.

-DontFragment : määrab Path MTU Discovery IP-võtmele fragmenteerimatuse lipu.

-IPv4 / -IPv6 : sunnib IP-protokolli kasutama; kasulik kahekihiliste hostide puhul või eraldusvõime probleemide korral.

-MaxHops <int> : lubatud hüpete maksimaalne arv; Windows 10+ puhul vaikimisi 128.

-ResolveDestination : püüab lahendada sihtkoha DNS-nime ja koos -Traceroute'iga ka võimaluse korral vahehoste.

-Source <string> : saatmisallikas (arvuti), kui see on kohaldatav; vaikimisi on see local , mis on kasulik mitme allika korral.

-Vaikne : summutab vead ja tagastab sihtkoha järgi tõeväärtused; $true, kui vähemalt üks ping õnnestub, $false, kui kõik ebaõnnestuvad.

-TimeoutSeconds <int> : maksimaalne ooteaeg vastuse kohta; vaikimisi 5 sekundit ; saadaval alates PowerShell 6-st.

-Detailne : TCP-testides (-TcpPort) tagastab TcpPortStatuse koos ID, aadressi, latentsusaja, ühendatud oleku ja olekuga ; sisseehitatud PowerShell 7.4-sse.

Klassikalised parameetrid ja valikud (Windows PowerShell 5.1)

-ComputerName <string[]> : testitavad sihtkohad; kohustuslik ja ei sõltu PowerShelli kaugtoest.

  Kuidas lukustatud kontot Windows 11-s avada

-AsJob : käivitab cmdleti taustal; tagastab taastatava tööobjekti Receive-Job käsuga, et seanssi mitte blokeerida.

-DcomAuthentication <AuthenticationLevel> : WMI-ga kasutatav COM-autentimise tase; aktsepteeritud väärtused: Vaikimisi, Puudub, Ühenda, Kõne, Pakett, PacketIntegrity, PacketPrivacy, Muutmata (vaikimisi pakett).

-Impersonation <ImpersonationLevel> : WMI imitatsioonitase; väärtused Vaikimisi, Anonüümne, Tuvasta, Impersonate, Delegate (vaikimisi Impersonate).

-Protocol <string> : WMI protokoll; DCOM või WSMan olenevalt konfiguratsioonist.

-WsmanAuthentication <string> : autentimismehhanism WSMani kasutamisel; toetab vaikimisi, põhilist, läbirääkimisi, CredSSP-d, digesti ja Kerberost.

-ThrottleLimit <int> : käsu samaaegsete ühenduste maksimaalne arv; vaikimisi 32.

-TimeToLive (TTL) <int> : maksimaalne uuestisaatmiste arv enne paketi hülgamist; Windowsis vaikimisi 128 (ehk TTL).

-Source <string[]> ja -Credential <PSCredential> : pingide saatmiseks teistest allikatest koos sobivate volitustega, eriti kasulik eri asukohtade latentsuse võrdlemiseks.

Praktilised näited PowerShell 6/7-ga

Põhiline IPv4 ping konkreetsele serverile ja PingStatus väljundi analüüs:

Test-Connection -TargetName Server01 -IPv4

Pingi mitu sihtkohta ühe käsuga, kasutades nimemassiivi:

Test-Connection -TargetName Server01, Server02, Server12

Kohanda loendurit, viivitust, hüppeid ja puhvri suurust võrgu laadimisel:

Test-Connection -TargetName Server01 -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256

Käivita taustal , lugedes sihtkohti failist ja oodates tulemusi:

$job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path 'Servers.txt') }
$results = Receive-Job $job -Wait

Loo PSSession ainult siis, kui vähemalt ühes kajas on ühenduvus:

if (Test-Connection -TargetName Server01 -Quiet) {
  New-PSSession -ComputerName Server01
}

Avasta marsruut funktsiooniga traceroute ja tagasta iga hüppe kohta TraceStatus:

Test-Connection -TargetName www.google.com -Traceroute

Tüüpilise TLS-pordi detailne TCP-test (PowerShell 7.4) :

Test-Connection bing.com -TcpPort 443 -Detailed -Count 4

Praktilised näited Windows PowerShelli 5.1 abil

Lihtne pingimine kaugarvutisse Win32_PingStatus väljundiga:

Test-Connection -ComputerName Server01

Pingi mitu serverit kohalikust masinast:

Test-Connection -ComputerName Server01, Server02, Server12

Latentsusaegade võrdlemiseks pingige sihtkohta mitmest allikast koos mandaatidega:

Test-Connection -Source Server02, Server12, localhost -ComputerName Server01 -Credential (Get-Credential)

Kohanda katseid, TTL-i, puhvrit ja samaaegsust suurtes võrkudes:

Test-Connection -ComputerName Server01 -Count 3 -Delay 2 -TTL 255 -BufferSize 256 -ThrottleLimit 32

Käivita taustal ja kogu tulemused pärast valmimist:

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

Pingi volituste ja isikuandmetega isikuandmete tuvastamiseks kohanda isikuandmete taset:

Test-Connection Server55 -Credential (Get-Credential) -Impersonation Identify

Kiirete otsuste tegemiseks skriptides kasutage Boole'i ​​väljundit :

if (Test-Connection -ComputerName Server01 -Quiet) { New-PSSession Server01 }

Cmdleti sisendid ja väljundid

Sisendid : Tänapäevases versioonis ei suunata objekte otse cmdleti; väärtused aktsepteeritakse standardparameetri abil (TargetName toetab pipe-by-value või property-name).

  Kuidas panna kaust "Allalaadimised" Windows 11 töölauale

PowerShell 6/7 väljundid :

  • Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatusüks objekt ICMP vastuse kohta.
  • Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus: üks objekt hüppe kohta valikuga -Traceroute.
  • Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus: koos -MtuSize'iga Path MTU jaoks.
  • Boolean: valikuga -Quiet või -TcpPort (massiivid, kui sihtkohti on mitu).
  • Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus: koos -Detailse TCP-ga versioonis 7.4.

Väljundid Windows PowerShell 5.1-s :

  • ManagementObject (Win32_PingStatus): iga kaja kohta.
  • Boolean: kui kasutate -Quiet.
  • Süsteemi.Halduse.Automatsiooni.Kaugtöö: kui käivitada valikuga -AsJob.

Platvormideülesed märkmed ja funktsioonid

Linux ja õigused : Kui kasutate muud väärtust kui 32 või kui kasutate kombinatsioone väärtusega -MtuSize, mis muudavad vaikeväärtust, võib olla vajalik sudo . Sellisel juhul viskab cmdlet erandi, mis näitab, et õigused on vajalikud.

Vaikne ja veakäsitlus : -Vaikne funktsioon tagastab tõeväärtused ja summutab vead ; pidage meeles, et mitme sihtkoha korral on väljundiks väärtuste massiiv hindamise järjekorras.

Repeat vs. Count : Ärge segage pingis käske -Repeat ja -Count; -Repeat ignoreerib täiendavaid sihtkohti ja itereerib ainult esimest . Mitme kordust sisaldava sihtkoha korral käivitage igaühe jaoks eraldi cmdlet.

Nimede lahendamine : -ResolveDestination lisab sihtkoha DNS-i lahenduse ja -Traceroute abil püüab lahendada iga hüpet ; see on kasulik vahepealsete seadmete kaardistamiseks.

Ühilduvus : kui teie skript peab töötama Windows PowerShell 5.1 ja PowerShell 6/7-s, tuvastage versioon ja kasutage vastavalt valikut -ComputerName või -TargetName ning kohandage väljundi tõlgendust.

Test-Connection ja selle seos Test-NetConnectioniga

Enne Test-NetConnectioni ühendati ühenduvuse diagnoosimiseks utiliidid nagu ping, tracert, nslookup ja telnet. PowerShell v4 tutvustas Test-NetConnectioni, mis tsentraliseerib ICMP ja TCP testimise ning jälgib isegi marsruute ühe cmdletiga.

Sellegipoolest hõlmab Test-Connection põhjalikumaid stsenaariume, pakkudes spetsiifilisemaid objekte ICMP, MTU, traceroute ja kaasaegse TCP testimise jaoks. Saate seda täiendada Test-NetConnectioniga, kui vajate kiiret ja kõikehõlmavat kontrolli.

Näited Test-NetConnectioni kasutamisest käitumise võrdlemiseks:

# Chequeo general con más detalle
Test-NetConnection -InformationLevel Detailed

# Comprobar resolución y ruta hacia un host
Test-NetConnection -ComputerName google.com
Test-NetConnection -ComputerName google.com -TraceRoute

# Verificar un puerto TCP conocido
Test-NetConnection -ComputerName google.com -CommonTCPPort HTTP

# Especificar un puerto concreto
Test-NetConnection -ComputerName google.com -Port 80

Stsenaariumides, kus telnet pole enam vaikimisi olemas, lihtsustavad need PowerShelli cmdlet-käsud TCP-portide ja ICMP-ühenduvuse kontrollimist , lisades kasulikke metaandmeid, näiteks väljuva liidese või lähtekoodi aadressi.

Võrguühenduse prioriseerimine Windows 11-6-s
Seotud artikkel:
Kuidas võrguühendust Windows 11-s tähtsuse järjekorda seada: täielik samm-sammult juhend