Yeni bir dönemde 30-40 yeni personel işe başladığında, her birinin AD hesabını elle oluşturmak hem yavaş hem de hataya açıktır. PowerShell ile CSV tabanlı toplu provizyon, bu süreci dakikalara indirir.
CSV Dosya Yapısı
İK’dan tipik olarak şu formatta bir liste alırım:
Ad,Soyad,Departman,Unvan,Yonetici Ahmet,Yılmaz,BT,Sistem Uzmanı,mmutlu Ayşe,Kaya,Muhasebe,Muhasebe Uzmanı,bkaya
Toplu Kullanıcı Oluşturma Scripti
Import-Module ActiveDirectory
$kullanicilar = Import-Csv "C:\IK\yeni_personel.csv"
foreach ($k in $kullanicilar) {
$samAccountName = ($k.Ad.Substring(0,1) + $k.Soyad).ToLower() -replace '[ığüşöç]', ''
$upn = "[email protected]"
$ouPath = "OU=$($k.Departman),OU=Kullanicilar,DC=sirket,DC=local"
New-ADUser `
-Name "$($k.Ad) $($k.Soyad)" `
-GivenName $k.Ad `
-Surname $k.Soyad `
-SamAccountName $samAccountName `
-UserPrincipalName $upn `
-Path $ouPath `
-Department $k.Departman `
-Title $k.Unvan `
-Manager $k.Yonetici `
-AccountPassword (ConvertTo-SecureString "GeciciSifre!2026" -AsPlainText -Force) `
-ChangePasswordAtLogon $true `
-Enabled $true
Write-Host "Oluşturuldu: $samAccountName" -ForegroundColor Green
}
Grup Üyeliklerini Otomatik Atama
Kullanıcı oluşturulduktan sonra, departmana göre ilgili gruplara otomatik eklemek süreci tamamlar:
foreach ($k in $kullanicilar) {
$grup = "GRP-$($k.Departman)"
Add-ADGroupMember -Identity $grup -Members ($k.Ad.Substring(0,1) + $k.Soyad).ToLower()
}
Hata Toleransı Eklemek
Üretim script’lerinde, bir kullanıcı için hata oluşsa bile scriptin tamamının durmaması için try/catch bloğu kritik:
foreach ($k in $kullanicilar) {
try {
# ... kullanıcı oluşturma kodu ...
Write-Host "Başarılı: $($k.Ad) $($k.Soyad)" -ForegroundColor Green
} catch {
Write-Host "HATA: $($k.Ad) $($k.Soyad) - $($_.Exception.Message)" -ForegroundColor Red
# Hataları ayrı bir log dosyasına da yazabilirsiniz
Add-Content -Path "C:\Loglar\provizyon_hatalari.log" -Value "$($k.Ad) $($k.Soyad): $($_.Exception.Message)"
}
}
Sahadan Bir Not: Türkçe Karakter Sorunu
SamAccountName oluştururken Türkçe karakterlerin (ı, ğ, ü, ş, ö, ç) doğrudan kullanılması sistem hatalarına yol açabilir. Yukarıdaki script’te -replace ile bu karakterleri temizlemek, üretimde karşılaşacağınız en yaygın hatalardan birini baştan önler.
Sonuç
CSV tabanlı toplu provizyon, özellikle yoğun işe alım dönemlerinde saatlerce sürecek manuel işi dakikalara indirir. Script’i bir kez doğru kurduktan sonra, her yeni dönemde sadece CSV dosyasını güncelleyip çalıştırmak yeterli olur.