Jaringan adalah nadi setiap infrastruktur, dan keluhan "internet mati" selalu jatuh ke administrator. Episode ini membahas konfigurasi adaptor, IP statis dan DHCP, DNS client, hingga troubleshooting dengan Test-Connection, Test-NetConnection, dan Resolve-DnsName.

Di episode 20 kalian memastikan mesin selalu ter-update dan aman. Tapi ada satu hal yang membuat semua itu sia-sia: jika mesin tidak terhubung ke jaringan dengan benar, patch tidak bisa diunduh, monitoring tidak sampai ke pusat, dan user tidak bisa bekerja. Jaringan adalah nadi infrastruktur — dan keluhan "internet mati" selalu berakhir di meja administrator.
Episode ini adalah kotak peralatan jaringan kalian. Kita tidak akan membahas protokol dari nol, melainkan bagaimana PowerShell memanipulasi seluruh stack jaringan Windows: adaptor, alamat IP, DNS, hingga rangkaian perintah troubleshooting. Yang menarik, hampir semua cmdlet di episode ini mengikuti satu pola yang sudah kalian hafal — Get untuk membaca, New untuk membuat, Set untuk mengubah, Remove untuk menghapus. Bedanya, objek yang dikelola kali ini adalah "jaringan" itu sendiri.
Semua konfigurasi jaringan Windows berpusat pada adaptor — kartu fisik (Ethernet) maupun virtual (Wi-Fi, VPN, Hyper-V). Titik awal setiap pekerjaan jaringan adalah Get-NetAdapter:
Get-NetAdapter | Select-Object Name, InterfaceDescription, Status, LinkSpeedPerhatikan kolom Status: Up artinya adaptor aktif dan terhubung, Down artinya mati. Ini pemeriksaan pertama ketika user melaporkan "jaringan tidak jalan" — jangan langsung menyalahkan internet.
Enable-NetAdapter dan Disable-NetAdapter menyalakan atau mematikan adaptor. Set-NetAdapter mengubah propertinya:
Disable-NetAdapter -Name "Ethernet0" -Confirm:$false
Enable-NetAdapter -Name "Ethernet0"
Set-NetAdapter -Name "Ethernet0" -AdminStatus Up
Get-NetAdapter -Name "Ethernet0" | Select-Object Name, StatusWarning
Menonaktifkan adaptor akan memutus koneksi mesin itu seketika — termasuk koneksi remote yang sedang kalian pakai untuk menyetelnya. Jika mengelola mesin remote, jangan pernah menonaktifkan adaptor dari jarak jauh tanpa mekanisme pemulihan otomatis (misalnya tugas terjadwal yang mengaktifkannya kembali setelah beberapa menit).
Get-NetIPAddress menampilkan semua alamat IP di mesin. Saring dengan -AddressFamily IPv4 agar tidak tercampur dengan alamat IPv6:
Get-NetIPAddress -AddressFamily IPv4 |
Select-Object InterfaceAlias, IPAddress, PrefixLength, AddressStateAda dua cara sebuah mesin mendapat alamat IP:
| Mode | Cara Mendapat IP | Cocok Untuk |
|---|---|---|
| DHCP | Server DHCP otomatis memberikan IP | Workstation, mesin sementara |
| Statis | Ditetapkan manual | Server, printer, perangkat yang alamatnya harus tetap |
Mode DHCP diaktifkan lewat interface: Set-NetIPInterface -Dhcp Enabled. Mode statis dilakukan dengan New-NetIPAddress atau Set-NetIPAddress.
New-NetIPAddress -InterfaceAlias "Ethernet0" `
-IPAddress "192.168.10.15" `
-PrefixLength 24 `
-DefaultGateway "192.168.10.1"-PrefixLength 24 berarti subnet mask 255.255.255.0. Untuk mengubah IP yang sudah ada, lepas yang lama lalu buat yang baru:
Remove-NetIPAddress -InterfaceAlias "Ethernet0" -IPAddress "192.168.10.15" -Confirm:$false
New-NetIPAddress -InterfaceAlias "Ethernet0" `
-IPAddress "192.168.10.20" `
-PrefixLength 24 `
-DefaultGateway "192.168.10.1"Jika kalian ingin kembali ke mode DHCP (melepas IP statis dan menerima IP dari server DHCP):
Remove-NetIPAddress -InterfaceAlias "Ethernet0" -IPAddress "192.168.10.20" -Confirm:$false
Set-NetIPInterface -InterfaceAlias "Ethernet0" -Dhcp EnabledAlamat IP memberi tahu di mana mesin lain berada, tetapi user mengetik nama — dan nama diterjemahkan ke IP oleh DNS. DNS client Windows mengelola server yang dipakai untuk terjemahan itu:
Get-DnsClientServerAddress -InterfaceAlias "Ethernet0" -AddressFamily IPv4
Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" -ServerAddresses ("192.168.10.5", "8.8.8.8")Perhatikan penggunaan tanda kurung dengan -ServerAddresses — PowerShell memperlakukannya sebagai array, sehingga dua server DNS diterima sekaligus. Set-DnsClientServerAddress adalah versi PowerShell dari jendela konfigurasi DNS di GUI, tanpa klik.
Ketika resolusi DNS berubah (misalnya IP sebuah layanan dipindah), cache DNS lokal bisa menyimpan jawaban lama dan membuat koneksi gagal. Clear-DnsClientCache mengosongkannya:
Clear-DnsClientCacheKebiasaan yang bagus: bersihkan cache sebelum menguji resolusi yang baru diubah — jika tidak, hasil tes bisa menyesatkan karena masih memakai jawaban lama.
Ini bagian yang paling sering dipakai di lapangan. Ketika semuanya tampak salah, kalian tidak menebak — kalian memeriksa berlapis.
Test-Connection adalah implementasi ping:
Test-Connection -ComputerName "192.168.10.1" -Count 4
Test-Connection -ComputerName "8.8.8.8" -Count 4 -Quiet-Quiet mengembalikan True atau False — sempurna untuk dipakai dalam kondisi if skrip monitoring. Jika ping ke gateway gagal tetapi ping ke IP lain berhasil, masalahnya ada di jalur lokal, bukan internet.
Banyak server memblokir ping (ICMP) tetapi tetap menerima koneksi. Test-NetConnection tidak hanya ping — ia juga menguji port TCP, yang jauh lebih relevan untuk layanan nyata:
Test-NetConnection -ComputerName "www.example.com" -Port 443
Test-NetConnection -ComputerName "192.168.10.30" -Port 3389Perintah kedua menguji apakah port RDP mesin itu terbuka — diagnosa "RDP saya tidak bisa konek" dalam satu baris.
Untuk melihat jalur yang dilewati paket menuju tujuan, Test-NetConnection punya parameter -TraceRoute (versi Windows dari tracert):
Test-NetConnection -ComputerName "8.8.8.8" -TraceRouteDan untuk memeriksa terjemahan nama ke IP — pertanyaan pertama setiap masalah resolusi DNS:
Resolve-DnsName -Name "www.example.com"
Resolve-DnsName -Name "www.example.com" -Server "8.8.8.8"Baris kedua memaksa query ke server DNS tertentu — berguna untuk membandingkan jawaban DNS internal vs publik. Resolve-DnsName menggantikan nslookup yang sudah tua dan menghasilkan objek terstruktur, bukan teks mentah.
Tip
Urutan diagnosa yang benar: (1) Test-Connection ke IP — apakah jalur dasar hidup? (2) Resolve-DnsName — apakah nama ter-resolve benar? (3) Test-NetConnection -Port — apakah layanan di ujung menerima koneksi? Urutan ini memecah masalah menjadi lapisan fisik, DNS, dan aplikasi — dan selalu mengarahkan kalian ke lapisan yang benar-benar bermasalah.
Get-NetAdapter, Get-NetIPAddress, dan Get-DnsClientServerAddress. Menyetel konfigurasi tanpa membaca kondisi saat ini adalah tindakan buta.Set-*. Ketika sesuatu rusak, kalian tahu persis nilai apa yang harus dikembalikan.Test-Connection dan Resolve-DnsName. Jangan pergi sebelum membuktikan koneksi bekerja.Di episode 21 ini kalian telah melengkapi kotak peralatan jaringan: membaca dan mengelola adaptor (Get-NetAdapter, Set-NetAdapter, Enable-NetAdapter, Disable-NetAdapter), konfigurasi IP (Get-NetIPAddress, New-NetIPAddress, Set-NetIPAddress, Remove-NetIPAddress) beserta mode DHCP dan statis, DNS client (Get-DnsClientServerAddress, Set-DnsClientServerAddress, Clear-DnsClientCache), serta troubleshooting berlapis dengan Test-Connection, Test-NetConnection untuk port TCP, traceroute, dan Resolve-DnsName.
Poin kunci yang harus kalian bawa:
Get-NetAdapter sebelum menebak masalah di tempat lain.Test-NetConnection -Port menguji layanan nyata, bukan sekadar ping.Kalian kini bisa menyetel dan mendiagnosa jaringan dari konsol. Namun seiring skrip kalian bertambah banyak dan kompleks, ada pertanyaan yang semakin mendesak: bagaimana menulis skrip yang benar-benar layak produksi? Di episode 22 selanjutnya kita akan membahas Script Best Practices & Standards: organisasi kode, konvensi penamaan, comment-based help, penanganan error yang matang, performa pipeline, hingga keamanan kredensial. Sampai jumpa!