barisnetblog.space — PowerShell ile Active Directory Kullanıcı Yönetimini Otomatikleştirme
Windows Server 27 Temmuz 2026 1 dk okuma 1.302 görüntülenme

PowerShell ile Active Directory Kullanıcı Yönetimini Otomatikleştirme

CSV'den yüzlerce kullanıcı oluşturmak, parola politikalarını denetlemek ve tekrarlayan AD işlerini tek betiğe indirmek: sahada kullandığım PowerShell reçeteleri.

Sistem yöneticisinin günü tekrarlarla doludur: kullanıcı aç, grup ekle, parola sıfırla. Active Directory bu işlerin tamamını PowerShell üzerinden otomatikleştirmenize izin verir; üstelik grafik arayüzden çok daha hızlı ve denetlenebilir şekilde.

Neden Otomasyon?

  • Aynı işlemi üçüncü kez elle yapıyorsanız betiğe dökme zamanı gelmiştir
  • Betikler sürümlenir, gözden geçirilir ve tek tuşla geri alınabilir
  • Denetim sırasında *ne zaman, neyin, kim tarafından* çalıştığı loglarda hazır durur
  • Hata oranı elle yapılan toplu işlemlere göre belirgin şekilde düşer

CSV'den Toplu Kullanıcı Oluşturma

İK'dan gelen Excel'i CSV olarak kaydedin; sütunlar: Adi, Soyadi, KullaniciAdi, OU, GeciciSifre. Ardından aşağıdaki betik işin tamamını görür:

PowerShell
Import-Module ActiveDirectory

$kullanicilar = Import-Csv "C:\Scripts\yeni_kullanicilar.csv"

foreach ($k in $kullanicilar) {
    $ad = "$($k.Adi) $($k.Soyadi)"

    New-ADUser -Name $ad -GivenName $k.Adi -Surname $k.Soyadi -SamAccountName $k.KullaniciAdi -UserPrincipalName "$($k.KullaniciAdi)@firma.local" -Path $k.OU -Enabled $true

    $sifre = ConvertTo-SecureString $k.GeciciSifre -AsPlainText -Force
    Set-ADAccountPassword -Identity $k.KullaniciAdi -NewPassword $sifre -Reset
    Set-ADUser -Identity $k.KullaniciAdi -ChangePasswordAtLogon $true

    Write-Host "[OK] $ad olusturuldu" -ForegroundColor Green
}

Set-ADUser -ChangePasswordAtLogon parametresi sayesinde kullanıcı ilk oturumda geçici parolayı değiştirmeye zorlanır; bu, parola politikasıyla çelişmeden güvenli bir ilk giriş akışı sağlar.

Parola Politikasını Denetleme

Fine-grained parola politikaları (FGPP) devredeyse domain düzeyindeki varsayılan politika yanıltıcı olabilir. Hızlı kontrol:

PowerShell
Get-ADDefaultDomainPasswordPolicy | Select-Object ComplexityEnabled, MinPasswordLength, LockoutThreshold, LockoutDuration

Get-ADFineGrainedPasswordPolicy -Filter * | Select-Object Name, Precedence, MinPasswordLength

90 Gündür Pasif Hesaplar

Güvenlik ekibinin en sevdiği rapor, uzun süredir oturum açmamış hesapların listesidir:

PowerShell
Get-ADUser -Filter { Enabled -eq $true } -Properties LastLogonDate | Where-Object { $_.LastLogonDate -lt (Get-Date).AddDays(-90) } | Select-Object Name, SamAccountName, LastLogonDate | Export-Csv "C:\Rapor\pasif_hesaplar.csv" -NoTypeInformation -Encoding UTF8

Bu üç betiği görev zamanlayıcıya bağlayıp çıktısını e-posta ile aldığınızda AD yönetimi büyük ölçüde kendi kendine yürür. Bir sonraki yazıda Group Policy tarafındaki otomasyona bakacağız.

Okuma görünümü 1.302 görüntülenme