Menguasai administrasi Windows Server untuk lingkungan enterprise: Active Directory dan identitas, Group Policy untuk kebijakan terpusat, serta PowerShell sebagai tulang punggung automation

Setelah episode 3 mengasah administrasi Linux, sekarang kita menyeberang ke dunia Windows Server. Jangan salah — meski tren cloud dan Linux mendominasi, sebagian besar perusahaan enterprise masih menjalankan Active Directory untuk identitas, file server, dan aplikasi bisnis berbasis Windows. Seorang System Engineer yang hanya paham satu OS akan kesulitan di dunia kerja yang nyaris selalu hybrid.
Episode ini membangun tiga pilar administrasi Windows: Active Directory sebagai pusat identitas, Group Policy untuk menerapkan kebijakan secara terpusat, dan PowerShell sebagai senjata utama automation — padanan bash + systemctl di dunia Windows.
Active Directory (AD) adalah direktori terpusat yang menyimpan akun pengguna, komputer, dan kebijakan dalam sebuah domain. Komponen utamanya:
| Komponen | Fungsi | Analogi Linux |
|---|---|---|
| Domain Controller | Memvalidasi login & menyimpan data direktori | NIS/LDAP server |
| Domain | Batas administratif & keamanan | - |
| Organizational Unit (OU) | Struktur folder untuk grup objek | Direktori & group |
| GPO | Kebijakan yang diterapkan ke objek | puppet/ansible config |
| DNS | Wajib untuk menemukan domain controller | /etc/hosts, DNS |
Saat sebuah server Windows bergabung ke domain (join domain), logonya divalidasi oleh Domain Controller — bukan lagi oleh akun lokal di mesin itu sendiri.
Gunakan Active Directory Users and Computers (GUI) untuk visual, tapi sebagai System Engineer kalian harus lancar dengan ActiveDirectory PowerShell module:
Import-Module ActiveDirectory
New-ADUser -Name "Budi Santoso" -SamAccountName "budi.s" `
-UserPrincipalName "budi.s@corp.local" `
-Path "OU=Staff,DC=corp,DC=local" `
-AccountPassword (ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force) `
-Enabled $true
Get-ADUser -Filter 'Enabled -eq $true' | Select-Object Name, SamAccountNameCatatan: parameter wajib AD adalah DNS yang benar dan time sync yang akurat (Kerberos menolak perbedaan waktu di atas 5 menit). Inilah dua penyebab paling umum kegagalan autentikasi AD.
Tip
Uji AD dengan dcdiag /v untuk verifikasi kesehatan domain controller secara menyeluruh — mulai dari DNS, replikasi, hingga izin. Ini checklist pertama yang dijalankan saat laporan "login gagal" masuk.
Group Policy memungkinkan kalian menetapkan kebijakan sekali lalu diterapkan ke banyak komputer dan user. Kebijakan diatur dalam GPO (Group Policy Object) dan dikaitkan ke OU. Contoh penggunaan umum:
Praktik terbaik saat bekerja dengan GPO:
Get-GPO untuk audit.Get-GPO -All | Select-Object DisplayName, GpoStatus, ModificationTimeGPO diterapkan dengan urutan LSDOU: Local → Site → Domain → OU. Kebijakan yang diterapkan paling akhir (level OU) menang atas konflik. Memahami urutan ini menyelamatkan kalian dari teka-teki "kenapa setting-ku tidak berlaku" — sering kali jawabannya adalah GPO lain di level lebih tinggi menimpanya.
PowerShell adalah bahasa scripting + shell interaktif. Pola penamaan cmdlet selalu Verb-Noun (Get-, Set-, New-, Remove-):
Get-Service -Name W3SVC # status service (setara systemctl status)
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
Get-EventLog -LogName System -Newest 20Padanan dengan perintah Linux yang sudah kalian kenal:
| Linux | PowerShell |
|---|---|
systemctl status nginx | Get-Service nginx |
journalctl -u nginx -n 50 | Get-WinEvent -LogName Application -MaxEvents 50 |
ps aux | Get-Process |
df -h | Get-PSDrive -PSProvider FileSystem |
grep pattern file | Select-String -Path file -Pattern pattern |
Contoh script untuk merestart service IIS dan mengirim notifikasi jika gagal:
$service = "W3SVC"
try {
Restart-Service -Name $service -ErrorAction Stop
if ((Get-Service $service).Status -eq "Running") {
Write-Host "[OK] $service berjalan normal"
} else {
Write-Host "[WARN] $service tidak berjalan setelah restart"
}
} catch {
Write-Host "[ERROR] Gagal restart $service : $($_.Exception.Message)"
exit 1
}Jalankan dengan powershell -File restart-iis.ps1. Seperti bash -n di Linux, verifikasi sintaks dengan powershell -NoProfile -Command "[scriptblock]::Create((Get-Content restart-iis.ps1 -Raw))".
Untuk server production, gunakan Windows Server Core — versi tanpa GUI yang jauh lebih ringan dan lebih aman (permukaan serangan lebih kecil). Semua administrasi lewat PowerShell dan remote management. Bagi System Engineer, Server Core adalah "server asli": ringan, stabil, dan mudah diotomasi.
Skenario lengkap yang bisa kalian praktikkan di VM Windows Server (trial):
# 1. Set DNS ke domain controller
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 10.0.0.10
# 2. Gabung ke domain
Add-Computer -DomainName "corp.local" -Credential (Get-Credential) -Restart
# 3. (Setelah reboot) install peran IIS via PowerShell
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
# 4. Verifikasi
Get-Service W3SVCtry/catch dan ErrorAction Stop akan "sukses" diam-diam padahal gagal.Get-EventLog/Get-WinEvent adalah jawaban pertama untuk hampir semua masalah Windows.Inti yang harus dibawa pulang:
AD PowerShell module + dcdiag.Verb-Noun, error handling, dan Server Core untuk production.Di episode 5 selanjutnya kita membahas networking untuk sistem — IP/subnetting, DNS, DHCP, dan konfigurasi host — fondasi yang menghubungkan semua server yang kalian kelola. Sampai jumpa di episode 5!