Test-Connection di PowerShell: Panduan Lengkap untuk Cmdlet

Pembaharuan Terakhir: 14/08/2025
penulis: Isaac
  • Test-Connection menawarkan pengujian ping, traceroute, MTU, dan TCP dengan keluaran terstruktur.
  • En PowerShell 6/7 mengubah sintaksis, mengembalikan tipe dan menambahkan parameter seperti -Traceroute dan -Detailed.
  • Windows PowerShell 5.1 menggunakan WMI dan Win32_PingStatus dengan opsi autentikasi dan peniruan identitas.
  • -Quiet mengembalikan boolean, -Repeat berulang terus-menerus, dan -MtuSize menghitung MTU Path.

Panduan Uji Koneksi di PowerShell

Jika Anda bekerja dengan jaringan di Windows, Linux atau macOS, cepat atau lambat Anda akan ingin memeriksa apakah host merespons dan seberapa sehat jalurnya. Cmdlet Test-Connection adalah pisau Swiss Army modern untuk ping ICMP, traceroute, penemuan MTU, dan pengujian TCP dari PowerShell., dengan keluaran terstruktur yang dapat disaring dan diproses.

Lebih jauh lagi, cerita cmdlet memiliki dua sisi: Di Windows PowerShell klasik (5.1) ia bergantung pada WMI dan mengembalikan Win32_PingStatus, sementara di PowerShell 6 dan yang lebih baru cmdlet didesain ulang dan diperluas agar bersifat lintas platform dan mengekspos objek tertentu seperti PingStatus, TraceStatus, atau TcpPortStatus. Mengetahui kedua keluarga parameter dan keluaran memungkinkan Anda mendiagnosis secara menyeluruh dan akurat..

Apa itu Test-Connection dan apa solusinya?

Test-Connection mengirimkan permintaan gema ICMP (ping) ke satu atau lebih tujuan dan mengembalikan respons; ia juga dapat melacak rute (traceroute), menghitung MTU Jalur, dan menguji apakah port TCP dapat diakses. Dibandingkan dengan eksekusi ping tradisional, Cmdlet mengembalikan objek kaya yang dapat Anda salurkan, saring, dan ubah. ke laporan atau dasbor.

Dalam versi modernnya, cmdlet menambahkan parameter seperti -Traceroute, -MtuSize, -TcpPort, -Repeat, -TimeoutSeconds, -IPv4/-IPv6 dan -Detailed (yang terakhir sejak PowerShell 7.4 untuk memecah upaya TCP). Dengan -Quiet Anda dapat membatasi output ke boolean berdasarkan tujuan untuk keputusan cepat dalam skrip.

Di lingkungan tempat Anda sebelumnya menggabungkan ping, tracert, nslookup atau telnet, PowerShell menyediakan opsi asli untuk mencakup hampir semua diagnostik konektivitas dari satu alat.Dan jika Anda lebih suka pendekatan lain, ada Test-NetConnection untuk pemeriksaan jaringan gabungan, tetapi artikel ini berfokus pada meremas Test-Connection.

Perubahan utama: Windows PowerShell 5.1 vs PowerShell 6/7

Ada dua tahap yang jelas dalam evolusi cmdlet. Di Windows PowerShell 5.1 dan versi sebelumnya, cmdlet menggunakan WMI dan mengembalikan Win32_PingStatus; memaparkan parameter seperti -ComputerName, -AsJob, -DcomAuthentication, -Impersonation, -Protocol, -ThrottleLimit, -TimeToLive (TTL), dan -WsmanAuthentication, antara lain.

Dengan lompatan ke PowerShell 6+, Cmdlet ditulis ulang agar lintas platform dan API-nya diubah: -TargetName sekarang digunakan (bukan -ComputerName), set parameter Ping/Repeat/Traceroute/MtuSize/TcpPort muncul, outputnya adalah tipe spesifik seperti PingStatus, TraceStatus, PingMtuStatus atau TcpPortStatus, dan -TimeoutSeconds, -ResolveDestination dan -Detailed (7.4) tiba untuk TCP.

Ini menyiratkan bahwa, Jika Anda menulis skrip portabel, Anda harus mendeteksi versi dan menyesuaikan parameter dan pemrosesan. keluaran. Salah satu opsinya adalah mencakup kedua dunia dengan cabang bersyarat ($PSVersionTable.PSVersion.Major).

Sintaksis Modern dan Set Parameter (PowerShell 6+)

Cmdlet menawarkan beberapa set parameter yang mengaktifkan mode yang berbedaBerikut ikhtisar pilihan utama:

  • Ping Default: Uji Koneksi
  • Ulangi Ping: Uji Koneksi -Mengulang
  • Traceroute: Uji Koneksi -Pelacakan
  • Deteksi Ukuran Mtu: Uji Koneksi -Ukuran Mtu
  • Port TCP: Uji Koneksi -Port TCP
  Perbaiki Kesalahan WSA Tidak Berfungsi di Windows 11

Dalam semua mode, -TargetName diperlukan dan menerima nama DNS atau alamat IPv4/IPv6Output default dalam ping adalah serangkaian objek PingStatus, satu objek per gema.

Sintaks dan Contoh Cmdlet

Sintaks Klasik (Windows PowerShell 5.1)

Tanda tangan lainnya digunakan di lingkungan Windows PowerShell 5.1., dengan -ComputerName sebagai parameter pusat dan beberapa opsi autentikasi WMI:

  • Default: Uji Koneksi
  • sumber: Uji Koneksi
  • Tenang: Uji Koneksi

Dalam hal ini, Keluaran defaultnya adalah ManagementObject Win32_PingStatus, dan dengan -AsJob objek pekerjaan (System.Management.Automation.RemotingJob) dikembalikan.

Parameter modern, dijelaskan satu per satu

-NamaTarget: Target untuk pengujian, mendukung nama dan alamat IPv4/IPv6; posisi 0 dan wajib; menerima penyaluran berdasarkan nilai dan nama properti.

-Ping: Memaksa mode ping ICMP; ini adalah perilaku default, jadi biasanya diabaikan kecuali jika digabungkan secara khusus.

-Ulang: mengirimkan ping secara terus-menerus; Jika Anda memberikan beberapa tujuan, ulangi hanya tujuan pertama dan lewati sisanya; tidak kompatibel dengan -Count di ping.

-Pelacakan rute: Melacak rute ke tujuan dengan mengembalikan objek TraceStatus per hop; dari PowerShell 6 dan mendukung -ResolveDestination untuk nama DNS perantara.

-Ukuran Mtu: mendeteksi MTU Jalur ke tujuan, mengembalikan PingMtuStatus dengan ukuran MTU yang efektif; berguna dalam kombinasi dengan -DontFragment dan -BufferSize.

-Port TCP: mencoba membuka koneksi TCP ke port yang ditentukan di tujuan; mengembalikan $true atau $false (dan dengan -Detailed dalam 7.4, objek TcpPortStatus dengan latensi dan informasi per-percobaan).

-Menghitung: jumlah permintaan gema; secara default 4 dalam ping dan juga berlaku dengan TcpPort.

-Menunda: detik antar percobaan; berguna untuk kemacetan atau pengujian berkelanjutan.

-Ukuran Penyangga: byte muatan; 32 secara default; ditetapkan bersama -DontFragment untuk pengujian MTU.

-JanganPecahkan: menetapkan tanda tidak ada fragmentasi pada IP; kunci untuk Penemuan MTU Jalur.

-IPv4 / -IPv6: memaksa protokol IP untuk digunakan; berguna pada host tumpukan ganda atau ketika ada masalah resolusi.

-MaxHops: jumlah lompatan maksimum yang diizinkan; 128 secara default pada Windows 10+.

-ResolveDestination: mencoba untuk menyelesaikan nama DNS tujuan dan, di samping -Traceroute, juga inang perantara jika memungkinkan.

-Sumber: asal pengiriman (peralatan) jika berlaku; secara default lokal, berguna dalam skenario multi-asal.

-Diam: menghilangkan kesalahan dan mengembalikan nilai boolean berdasarkan tujuan; $true jika setidaknya satu ping berhasil, $false jika semuanya gagal.

-Waktu HabisDetik: waktu tunggu maksimum untuk respons; 5 detik secara default; tersedia sejak PowerShell 6.

-Terperinci: dalam pengujian TCP (-TcpPort), mengembalikan TcpPortStatus dengan Id, Arah, Latensi, Terhubung dan Status; tertanam dalam PowerShell 7.4.

Parameter dan Opsi Klasik (Windows PowerShell 5.1)

-NamaKomputer: tujuan untuk menguji; wajib dan tidak bergantung pada remoting PowerShell.

  FaceTime Tetap Memutuskan Sambungan dari WiFi di iPhone atau iPad

-SebagaiPekerjaan: menjalankan cmdlet di latar belakang; mengembalikan objek pekerjaan yang dapat dipulihkan dengan Receive-Job agar tidak memblokir sesi.

-DcomAuthentication: Tingkat otentikasi COM yang digunakan dengan WMI; nilai yang diterima Default, Tidak Ada, Sambungkan, Panggil, Paket, Integritas Paket, Privasi Paket, Tidak Berubah (Paket default).

-Peniruan: Tingkat peniruan WMI; nilai Default, Anonim, Identifikasi, Meniru, Delegasikan (secara default Meniru).

-Protokol: protokol untuk WMI; DCOM atau WSMan sesuai konfigurasi.

-WsmanAuthentication: Mekanisme otentikasi saat menggunakan WSMan; mendukung Default, Dasar, Negosiasi, CredSSP, Intisari, Kerberos.

-Batas Batas: koneksi simultan maksimum untuk perintah; secara default 32.

-WaktunyaHidup (TTL): jumlah maksimum pengiriman ulang sebelum membuang paket; 128 secara default di Windows (alias TTL).

-Sumber dan -Kredensial: untuk mengirim ping dari sumber lain dengan kredensial yang sesuai, sangat berguna untuk membandingkan latensi dari lokasi yang berbeda.

Contoh praktis dengan PowerShell 6/7

Ping IPv4 dasar ke server tertentu dan analisis keluaran PingStatus:

Test-Connection -TargetName Server01 -IPv4

Ping beberapa tujuan dalam satu perintah dengan serangkaian nama:

Test-Connection -TargetName Server01, Server02, Server12

Sesuaikan jumlah, penundaan, hop, dan ukuran buffer ketika jaringan dimuat:

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

Jalankan sebagai pekerjaan latar belakang Membaca tujuan dari suatu berkas dan menunggu hasilnya:

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

Buat PSSession hanya jika ada konektivitas setidaknya dalam gema:

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

Temukan rute dengan traceroute dan mengembalikan TraceStatus per hop:

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

Uji TCP Terperinci (PowerShell 7.4) untuk port TLS umum:

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

Contoh praktis dengan Windows PowerShell 5.1

Ping sederhana ke komputer jarak jauh dengan keluaran Win32_PingStatus:

Test-Connection -ComputerName Server01

Ping beberapa server dari tim tuan rumah:

Test-Connection -ComputerName Server01, Server02, Server12

Ping tujuan dari berbagai sumber dengan kredensial untuk membandingkan latensi:

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

Sesuaikan maksud, TTL, buffer, dan konkurensi dalam jaringan yang luas:

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

Jalankan sebagai pekerjaan latar belakang dan mengumpulkan hasilnya ketika selesai:

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

Ping dengan kredensial dan peniruan identitas menyesuaikan tingkat peniruan identitas:

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

Gunakan keluaran boolean untuk keputusan cepat dalam skrip:

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

Masukan dan keluaran cmdlet

tiket:Dalam versi modern, objek tidak disalurkan langsung ke cmdlet; Nilai parameter standar diterima (TargetName mendukung penyaluran berdasarkan nilai atau nama properti.)

  Perbaiki Pengindeksan Windows 11 Dijeda

Output di PowerShell 6/7:

  • Microsoft.PowerShell.Perintah.PerintahKoneksiUji+StatusPing: satu objek per respons ICMP.
  • Microsoft.PowerShell.Perintah.PerintahKoneksiUji+StatusJejak: satu objek per hop dengan -Traceroute.
  • Microsoft.PowerShell.Perintah.PerintahKoneksiUji+StatusMtuPing: dengan -MtuSize untuk Path MTU.
  • Boolean: dengan -Quiet atau -TcpPort (array jika ada beberapa tujuan).
  • Microsoft.PowerShell.Perintah.PerintahKoneksiUji+StatusPortTcp: dengan -Detail untuk TCP di 7.4.

Output di Windows PowerShell 5.1:

  • Objek Manajemen (Win32_PingStatus): untuk setiap gema.
  • Boolean: saat menggunakan -Quiet.
  • Sistem.Manajemen.Otomatisasi.Pekerjaan Jarak Jauh: jika dijalankan dengan -AsJob.

Catatan dan fitur lintas platform

Linux dan izin: saat menggunakan -BufferSize selain 32 atau kombinasi dengan -MtuSize yang mengubah ukuran default, sudo mungkin diperlukanDalam kasus tersebut, cmdlet akan memunculkan pengecualian yang menunjukkan bahwa hak istimewa diperlukan.

Tenang dan penanganan kesalahan:-Quiet mengembalikan boolean dan menghapus kesalahan; ingat bahwa dengan beberapa tujuan, pintu keluarnya adalah sebuah matriks nilai berdasarkan urutan evaluasi.

Ulangi vs Hitung: jangan campur -Repeat dengan -Count di ping; -Pengulangan mengabaikan tujuan tambahan dan hanya mengulangi tujuan pertamaUntuk beberapa tujuan dengan pengulangan, panggil cmdlet untuk masing-masing tujuan.

Selesaikan nama:-ResolveDestination menambahkan resolusi DNS tujuan, dan dengan -Traceroute, coba selesaikan setiap lompatan; berguna untuk memetakan perangkat perantara.

kecocokan: ya kamu naskah harus bekerja pada Windows PowerShell 5.1 dan PowerShell 6/7, mendeteksi versi dan menggunakan -ComputerName atau -TargetName sesuai dengan versinya, dan menyesuaikan interpretasi keluaran.

Test-Connection dan hubungannya dengan Test-NetConnection

Sebelum Test-NetConnection, utilitas seperti ping, tracert, nslookup atau telnet digabungkan untuk mendiagnosis konektivitas. Dengan PowerShell v4 hadir Test-NetConnection, yang memusatkan pengujian ICMP dan TCP dan bahkan melacak rute dengan satu cmdlet.

Meski begitu, Test-Connection mencakup skenario mendalam dengan objek yang lebih spesifik untuk pengujian ICMP, MTU, traceroute, dan TCP modern. Anda dapat melengkapinya dengan Test-NetConnection jika Anda membutuhkan pemeriksaan cepat dan menyeluruh.

Contoh Test-NetConnection untuk membandingkan perilaku:

# 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

Dalam skenario di mana telnet tidak lagi ada secara default, Cmdlet PowerShell ini menyederhanakan pemeriksaan port TCP dan konektivitas ICMP, menambahkan metadata yang berguna seperti antarmuka keluaran atau alamat sumber.

Prioritaskan koneksi jaringan di Windows 11-6
Artikel terkait:
Cara memprioritaskan koneksi jaringan di Windows 11: Panduan langkah demi langkah lengkap