Mengelola Active Directory lewat GUI terasa cepat untuk satu user, tapi runtuh ketika harus berurusan dengan ratusan akun. Episode ini membedah modul ActiveDirectory: user, group, computer, dan OU — dari operasi tunggal hingga pembuatan user massal lewat CSV dan pelaporan otomatis.

Di episode 17 kita membedah COM objects dan integrasi .NET — kemampuan PowerShell memanggil komponen eksternal dan memanfaatkan pustaka .NET langsung dari konsol. Fondasi itulah yang membuat PowerShell bukan sekadar bahasa scripting, melainkan "pengontrol seluruh Windows". Sekarang kita naik satu level ke domain yang lebih strategis: Active Directory (AD).
AD adalah buku telepon sekaligus kartu identitas seluruh organisasi: siapa saja usernya, masuk ke group apa, komputer mana yang terdaftar, dan di unit organisasi mana mereka bernaung. Dengan 500 karyawan, mengelola akun satu per satu lewat GUI — klik, isi form, klik lagi — bukan hanya lambat, itu resep ketidakkonsistenan dan celah keamanan. Episode ini mengajarkan cara administrator sejati mengelola AD: cepat, akurat, dan bisa diulang kapan saja.
Modul yang kalian butuhkan bernama ActiveDirectory. Semua cmdlet-nya mengikuti pola Verb-Noun secara ketat: Get-ADUser, New-ADUser, Set-ADUser, Remove-ADUser, dan seterusnya. Kuasai satu keluarga cmdlet, keluarga lainnya tinggal menyesuaikan nama objeknya.
Modul ActiveDirectory tidak tersedia di Windows client secara default; kalian perlu RSAT (Remote Server Administration Tools). Di Windows Server dengan peran AD DS modul sudah terpasang; di Windows 10/11 Pro atau Enterprise aktifkan RSAT lewat Fitur Opsional, lalu jalankan Import-Module ActiveDirectory. Verifikasi modulnya:
Get-Command -Module ActiveDirectory | Select-Object -First 10 Name, CommandType
Get-Module -ListAvailable ActiveDirectoryModul menemukan Domain Controller (DC) terdekat secara otomatis. Untuk memastikan DC yang sedang dipakai — atau menyasar DC tertentu — pakai Get-ADDomainController dan parameter -Server:
Get-ADDomainController -Filter * | Select-Object Name, Site, Domain
Get-ADUser -Identity "jsantoso" -Server "dc01.corp.local"Tip
Sebelum menguji cmdlet AD apa pun, pastikan tiga hal: akun kalian punya hak administratif di domain, komputer terhubung ke jaringan domain, dan waktu sistem sinkron dengan DC. Kesalahan autentikasi Kerberos yang misterius hampir selalu berakar dari ketiga hal itu.
Cmdlet paling sering dipakai dalam keluarga ini adalah Get-ADUser. Secara default ia hanya mengembalikan atribut dasar; tambahkan -Properties untuk atribut yang lebih dalam:
Get-ADUser -Filter "Enabled -eq 'true'" -SearchBase "OU=Karyawan,DC=corp,DC=local" -Properties LastLogonDate, PasswordLastSet |
Select-Object SamAccountName, DisplayName, Enabled, LastLogonDatePola -Filter "Enabled -eq 'true'" jauh lebih cepat daripada mengambil semua user lalu menyaring di pipeline — AD menyaring di sisi server, bukan di sisi klien.
New-ADUser membuat akun. Pola yang wajib diingat: password harus dikonversi dulu menjadi SecureString dengan ConvertTo-SecureString:
$secure = ConvertTo-SecureString "S3cureP@ss2026" -AsPlainText -Force
New-ADUser -Name "Joko Santoso" `
-SamAccountName "jsantoso" `
-GivenName "Joko" `
-Surname "Santoso" `
-UserPrincipalName "jsantoso@corp.local" `
-Path "OU=Karyawan,DC=corp,DC=local" `
-AccountPassword $secure `
-Enabled $trueSet-ADUser mengubah atribut; Enable-ADAccount dan Disable-ADAccount mengatur status akun:
Set-ADUser -Identity "jsantoso" -Department "IT" -Title "Network Engineer"
Disable-ADAccount -Identity "jsantoso"
Enable-ADAccount -Identity "jsantoso"User lupa password dan akun terkunci karena salah password berulang kali adalah tugas harian helpdesk:
$secure = ConvertTo-SecureString "P@sswordBaru2026" -AsPlainText -Force
Set-ADAccountPassword -Identity "jsantoso" -NewPassword $secure -Reset
Set-ADUser -Identity "jsantoso" -ChangePasswordAtLogon $true
Unlock-ADAccount -Identity "jsantoso"-ChangePasswordAtLogon memaksa user mengganti password saat login berikutnya — wajib dipakai setiap kali kalian reset password orang lain.
Remove-ADUser menghapus akun dari direktori:
Remove-ADUser -Identity "jsantoso" -Confirm:$truePenghapusan di AD bersifat permanen. Disiplin tim yang baik: nonaktifkan dulu (misalnya 30 hari), lalu hapus setelah masa tunggu lewat — akun masih bisa dikembalikan jika ternyata masih dibutuhkan.
Important
Sebelum penghapusan massal, selalu cek dulu apa yang akan dihapus: jalankan Get-ADUser dengan filter yang sama, simpan hasilnya ke file, lalu gunakan daftar itu sebagai referensi. Di AD, perintah "hancurkan semua" jauh lebih murah dijalankan daripada diperbaiki.
Group adalah cara AD mengatur izin secara kolektif: alih-alih memberi akses ke 50 user satu per satu, buat satu group, masukkan 50 user ke dalamnya, lalu beri akses ke group itu:
New-ADGroup -Name "IT-Support" -GroupScope Global -Path "OU=Grup,DC=corp,DC=local"
Add-ADGroupMember -Identity "IT-Support" -Members "jsantoso","dwilestari","ahmadf"
Get-ADGroupMember -Identity "IT-Support" | Select-Object Name, SamAccountName
Remove-ADGroupMember -Identity "IT-Support" -Members "dwilestari" -Confirm:$falseAdd-ADGroupMember dan Remove-ADGroupMember menerima daftar anggota; Get-ADGroupMember membaca isi group; Get-ADGroup mencari group berdasarkan filter.
Akun komputer sama pentingnya dengan akun user — setiap perangkat yang bergabung ke domain punya satu:
Get-ADComputer -Filter * -Properties OperatingSystem, LastLogonDate |
Select-Object Name, OperatingSystem, LastLogonDate
New-ADComputer -Name "WS-021" -Path "OU=Workstation,DC=corp,DC=local"
Set-ADComputer -Identity "WS-021" -Description "Workstation Divisi HRD"
Remove-ADComputer -Identity "WS-021" -Confirm:$falseOU adalah "folder" AD untuk menata objek sekaligus batas pendelegasian izin:
New-ADOrganizationalUnit -Name "Marketing" -Path "DC=corp,DC=local" -ProtectedFromAccidentalDeletion $true
Get-ADOrganizationalUnit -Filter * | Select-Object Name, DistinguishedName
Set-ADOrganizationalUnit -Identity "OU=Marketing,DC=corp,DC=local" -Description "Divisi Pemasaran"-ProtectedFromAccidentalDeletion $true adalah pelindung bawaan agar OU (dan seluruh isinya) tidak terhapus tanpa disengaja — biasakan selalu menyalakannya.
Inilah momen di mana PowerShell benar-benar mengalahkan GUI. Misalkan HRD mengirimkan file users.csv berisi daftar karyawan baru.
$users = Import-Csv -Path "C:\Data\users.csv"
foreach ($u in $users) {
$secure = ConvertTo-SecureString $u.Password -AsPlainText -Force
New-ADUser -Name ($u.NamaDepan + " " + $u.NamaBelakang) `
-GivenName $u.NamaDepan `
-Surname $u.NamaBelakang `
-SamAccountName $u.Username `
-UserPrincipalName ($u.Username + "@corp.local") `
-Path "OU=Karyawan,DC=corp,DC=local" `
-AccountPassword $secure `
-Enabled $true
}Import-Csv mengubah setiap baris file menjadi objek; kolom Username, NamaDepan, NamaBelakang, dan Password diakses sebagai $u.Username dan seterusnya.
Semua akun yang berumur di atas 90 hari direset dan dipaksa ganti password saat login:
$list = Get-Content -Path "C:\Data\username.txt"
$secure = ConvertTo-SecureString "Reset#2026" -AsPlainText -Force
foreach ($user in $list) {
Set-ADAccountPassword -Identity $user -NewPassword $secure -Reset
Set-ADUser -Identity $user -ChangePasswordAtLogon $true
}Dengan satu pipeline, kalian menghasilkan laporan yang siap dikirim ke manajemen:
Get-ADUser -Filter * -Properties LastLogonDate, PasswordLastSet |
Select-Object SamAccountName, DisplayName, Enabled, LastLogonDate, PasswordLastSet |
Export-Csv -Path "C:\Data\report-user.csv" -NoTypeInformation -Encoding UTF8Get-Credential), vault, atau file enkripsi terbatas — dibahas mendalam di episode 22.-WhatIf dulu. Hampir semua cmdlet AD mendukung -WhatIf untuk memperlihatkan hasil tanpa benar-benar menjalankannya.Warning
Cmdlet AD berjalan dengan kredensial sesi PowerShell kalian saat ini. Jika akun login bukan admin domain, perintah akan gagal — atau lebih buruk, berhasil sebagian. Gunakan Run as Administrator dan pastikan akun punya hak yang memang diperlukan, bukan hak berlebihan.
Di episode 18 ini kalian telah menguasai pengelolaan Active Directory lewat PowerShell: persiapan RSAT dan modul ActiveDirectory, koneksi ke Domain Controller, manajemen user (Get-ADUser, New-ADUser, Set-ADUser, Remove-ADUser, Enable-ADAccount, Disable-ADAccount, Set-ADAccountPassword, Unlock-ADAccount), group (Get-ADGroup, New-ADGroup, Add-ADGroupMember, Remove-ADGroupMember, Get-ADGroupMember), computer dan OU, serta operasi massal dari CSV: pembuatan user massal, reset password massal, dan pelaporan otomatis.
Poin kunci yang harus kalian bawa:
-Filter di sisi server jauh lebih cepat daripada menyaring hasil di pipeline.SecureString sebelum dipakai cmdlet AD.-WhatIf, OU uji coba, dan backup daftar input adalah sabuk pengaman kalian.Kalian kini bisa mengelola identitas organisasi dari konsol. Pertanyaan berikutnya: bagaimana kalian mengelola konfigurasi mesin itu sendiri? Di episode 19 selanjutnya kita akan membedah Registry Management: memandang registry Windows sebagai filesystem, membaca dan menulis nilai lewat Get-ItemProperty dan Set-ItemProperty, membuat key dengan New-Item, hingga backup dan manipulasi registry dari jarak jauh. Sampai jumpa!