Belajar IT Support - Scripting for Support
Episode 16 of 28

Belajar IT Support - Scripting for Support

Bekerja seperti engineer: mengapa scripting memisahkan support biasa dari yang hebat, dasar PowerShell dari cmdlet hingga pipeline, variabel loop dan error handling pertama, padanan bash di Linux, bendera WhatIf penyelamat hidup, plus tiga script praktis siap pakai untuk laporan disk, audit password kadaluarsa, dan restart service massal

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 15 kalian merangkai proses on/offboarding yang tertib, sekarang kita belajar senjata yang mempercepat semua proses itu secara drastis: scripting. Ketika rekan kerja mengeklik satu per satu di 40 komputer, engineer sejati menulis 10 baris lalu minum kopi.

Mengapa scripting wajib bagi support? Karena pekerjaan support penuh pola berulang: cek disk puluhan PC, reset password massal saat policy berubah, audit akun pasif, pasang aplikasi standar. Setiap tugas manual yang kalian otomasi = waktu kembali untuk masalah menarik (dan reputasi naik ke atasan). Kabar baiknya: level yang dibutuhkan helpdesk tidak dalam — cukup membaca, merangkai, dan takut pada hal yang benar.

PowerShell: Bahasa Resmi Windows

Cmdlet dan Pipeline

PowerShell bekerja dengan cmdlet berformat KataKerja-KataBenda (Get-Service, Stop-Process). Kekuatan utamanya adalah pipeline — output perintah menjadi input perintah berikut:

Pipeline: rantai logika
# Service yang sedang berhenti
Get-Service | Where-Object Status -eq "Stopped"
 
# Lima proses pemakan RAM terbesar
Get-Process | Sort-Object WS -Descending | Select-Object -First 5 Name, @{n="RAM_MB";e={[math]::Round($_.WS/1MB)}}
 
# Simpan hasil ke CSV untuk tiket/arsip
Get-Volume | Export-Csv "$env:USERPROFILE\Desktop\disk-report.csv" -NoTypeInformation

Perhatikan $_ — artinya "objek yang sedang diproses di pipeline". Membiasakan diri membaca pipeline kiri-ke-kanan seperti kalimat adalah setengah dari kemampuan PowerShell.

Variabel, Loop, Error Handling

Fondasi bahasa
$computers = @("PC-FIN-01", "PC-HRD-02", "LTV-MKT-07")
 
foreach ($pc in $computers) {
    try {
        $disk = Get-CimInstance Win32_LogicalDisk -ComputerName $pc -Filter "DeviceID='C:'"
        $freeGB = [math]::Round($disk.FreeSpace / 1GB, 1)
        Write-Output "$pc : sisa C: $freeGB GB"
    }
    catch {
        Write-Warning "$pc tidak bisa dihubungi"
    }
}

Tiga konsep itu — variabel $x, foreach, try/catch — sudah cukup untuk 80% script support. Sisanya adalah mengetahui cmdlet mana yang tepat, dan itu datang dengan Google + pengalaman.

Bash: Padanan di Linux

Di Ubuntu server/lab kalian, filosofinya sama dengan sintaks berbeda:

Padanan tugas umum di bash
# Disk space semua mount point
df -h
 
# 5 folder terbesar di /var
du -h /var/* 2>/dev/null | sort -rh | head -5
 
# Loop daftar host
for pc in pc-fin-01 pc-hrd-02; do
  echo "== $pc =="
  ssh "$pc" 'df -h /' || echo "$pc gagal diakses"
done

Konsep transferable antar dua dunia: variabel, loop, redirect output, exit code ($?), dan kebiasaan menguji dulu di satu target sebelum massal.

WhatIf: Bendera Penyelamat Hidup

Sebelum script menyentuh banyak mesin, minta PowerShell berpura-pura dulu:

Dry run sebelum eksekusi nyata
Stop-Service -Name Spooler -WhatIf
Remove-Item C:\Temp\*.log -Recurse -WhatIf

Outputnya menjelaskan apa yang AKAN terjadi tanpa melakukannya. Jadikan ritual: -WhatIf → baca → hapus flag → jalankan. Di bash padanannya echo perintah atau jalankan dengan nama file dummy.

Caution

Aturan keselamatan scripting: script pertama selalu versi BACA-SAJA (hanya Get-). Script pengubah (Set-, Stop-, Remove-) wajib lolos uji di satu mesin lab + flag WhatIf. Dan jangan pernah menjalankan script dari internet yang belum kalian pahami baris demi baris.

Tiga Script Praktis Siap Pakai

1. Laporan Disk Penuh Massal

disk-report.ps1
$pcs = Get-Content .\daftar-pc.txt
$hasil = foreach ($pc in $pcs) {
    try {
        Get-CimInstance Win32_LogicalDisk -ComputerName $pc `
            -Filter "DriveType=3" |
            Select-Object @{n="PC";e={$pc}}, DeviceID,
                @{n="FreeGB";e={[math]::Round($_.FreeSpace/1GB,1)}}
    } catch { Write-Warning "$pc offline" }
}
$hasil | Sort-Object FreeGB | Format-Table
$hasil | Export-Csv .\laporan-disk.csv -NoTypeInformation

Jalankan tiap Senin pagi; PC dengan sisa ruang di bawah 15 GB dikontak proaktif sebelum user panik.

2. Audit Password Kadaluarsa

audit-password.ps1
Get-ADUser -Filter {Enabled -eq $true} -Properties PasswordExpired, PasswordLastSet |
  Where-Object { $_.PasswordExpired -eq $true } |
  Select-Object SamAccountName, PasswordLastSet |
  Export-Csv .\password-expired.csv -NoTypeInformation

Hasilnya bisa jadi basis kampanye edukasi — atau daftar reset proaktif agar Senin tidak dibanjiri tiket login gagal.

3. Restart Service di Banyak Mesin

restart-service-massal.ps1
$servers = Get-Content .\servers.txt
Invoke-Command -ComputerName $servers -ScriptBlock {
    Restart-Service -Name Spooler -Force
} -ErrorAction Continue
Write-Output "Spooler direstart di $($servers.Count) mesin"

Ini versi profesional dari trik spooler episode 13 — sekali jalan untuk seluruh cabang.

Integrasi ke Alur Kerja

Script bukan mainan terpisah — ia menyatu dengan materi sebelumnya:

  1. Ticketing: lampirkan output CSV sebagai bukti di tiket eskalasi (episode 9).
  2. Onboarding: script pembuatan akun + grup standar (episode 15).
  3. Scheduling: Task Scheduler menjalankan audit mingguan otomatis; hasil dikirim email ke tim.
  4. KB: dokumentasikan script beserta penjelasan parameternya (episode 17) agar rekan bisa pakai aman.

Batas tanggung jawab juga jelas: support menulis script operasional (laporan, restart, audit); perubahan infrastruktur besar tetap lewat change process tim senior (episode 23).

Tip

Mulai dari koleksi pribadi: satu folder scripts/ berisi tiap solusi yang pernah kalian tulis, plus komentar header (fungsi, tanggal, catatan). Dalam enam bulan folder ini adalah aset karier paling nyata milik kalian.

Penutup

Inti yang harus dibawa pulang:

  • Scripting mengubah pekerjaan repetitif menjadi satu kali tulis, berkali pakai.
  • PowerShell: kuasai cmdlet, pipeline, $_, foreach, dan try/catch — itu fondasi 80% kasus.
  • Bash punya konsep identik dengan sintaks beda; belajar keduanya membuat kalian fleksibel lintas OS.
  • -WhatIf sebelum eksekusi adalah budaya, bukan opsi; uji read-only dulu, lab dulu, baru produksi.
  • Tiga template hari ini (disk report, audit password, restart massal) langsung bisa dipakai besok pagi.

Di episode 17 selanjutnya kita ubah pengetahuan menjadi aset organisasi: documentation & knowledge base — struktur KB article yang benar, SOP yang bisa diikuti orang baru, budaya self-service, cara mendokumentasikan sambil mengerjakan, dan bagaimana dokumentasi rapi membuat tim support tidur lebih tenang. Sampai jumpa!

Belajar IT Support - Scripting for Support | Belajar IT Support