Site Overlay

Windows Active Directory’de AD Kullanıcıları Raporlama – PowerShell ile Adım Adım

Windows Active Directory’de AD Kullanıcıları Raporlama – PowerShell ile Adım Adım

Windows Active Directory’de AD Kullanıcıları Raporlama – PowerShell ile Adım Adım

Bu yazıda, Get-ADUser komutuyla tüm kullanıcıları çekerek; etkinlik durumu (“Enabled”/“Disabled”), son giriş tarihi, parola son değiştirilme tarihi, parola süresiz durumu gibi bilgileri raporlama ve bu çıktıyı CSV’ye aktarma işlemini adım adım bulacaksınız.

1. Komutun Genel Yapısı

Aşağıdaki PowerShell kodu, tüm AD kullanıcılarını çekip gerekli özellikleri ekleyip CSV olarak dışa aktarır:

Import-Module ActiveDirectory

$results = Get-ADUser -Filter * -Properties Enabled, SamAccountName, Name, LastLogonDate, PasswordLastSet, userAccountControl |
Select-Object `
    Name, `
    SamAccountName, `
    @{Name="Status"; Expression={if ($_.Enabled) {"Enabled"} else {"Disabled"}}}, `
    @{Name="Last Logon Date"; Expression={if ($_.LastLogonDate) {$_.LastLogonDate.ToLocalTime()} else {"—"}}}, `
    @{Name="Password Never Expired"; Expression={ ($_.userAccountControl -band 0x10000) -ne 0 }}, `
    @{Name="Last Password Changed"; Expression={if ($_.PasswordLastSet) {$_.PasswordLastSet.ToLocalTime()} else {"—"}}} |
Sort-Object Name

# CSV dosyasını tek seferde ve düzgün başlıklarla oluştur
$results | Export-Csv -Path "C:\IT21\ADUsersReport.csv" -NoTypeInformation -Encoding UTF8

# Ekranda da göstermek istersen:
$results | Format-Table -AutoSize
            

2. Kodun Parçalarına Dair Açıklamalar

  • Import-Module ActiveDirectory: AD cmdlet’lerini kullanabilmek için gerekli modül.
  • Get-ADUser -Filter * -Properties … : Tüm kullanıcıları çeker ve ilave özellikleri getirir: Enabled, SamAccountName, Name, LastLogonDate, PasswordLastSet, userAccountControl.
  • Select-Object … : Çekilen verilere anlamlı başlıklar atanır:
    • Name ve SamAccountName: Kullanıcı adı ve oturum adı.
    • Status: Kullanıcının etkin mi değil mi olduğu.
    • Last Logon Date: Kullanıcının aktif oturum açma geçmişi (varsa).
    • Password Never Expired: userAccountControl bayrağı ile parola süresiz mi kontrolü yapılır.
    • Last Password Changed: Kullanıcının parolasını en son ne zaman değiştirdiği (varsa).
  • Sort-Object Name: Çıktıyı kullanıcı adına göre alfabetik sıralar.
  • Export-Csv … : Raporu CSV formatında, UTF8 kodlamasıyla dışa aktarır.
  • Format-Table: İstersen ekran çıktısı olarak da görebilirsin.

3. Örnek Çıktı ve Tablo

Aşağıda örnek bir tablo yer alıyor:

Name SamAccountName Status Last Logon Date Password Never Expired Last Password Changed
Arif AKYUZ arifakyuz Enabled 2025-10-22 14:35:12 False 2025-09-10 09:15:00
Arif Akyuz arifakyuz Disabled True 2024-12-01 11:20:00

4. İpuçları ve Dikkat Edilmesi Gerekenler

  • Komutu çalıştırmadan önce yönetici yetkilerine sahip olduğunuzdan emin olun.
  • LastLogonDate alanı bazı ortamlarda güncel olmayabilir — DC’ler arası replikasyon farkı olabilir.
  • Parola “süresiz” olup olmadığını kontrol etmek için userAccountControl bayrağı kullanılmaktadır.
  • CSV dosyasının yolu ve adı ihtiyaçlarınıza göre düzenlenebilir.
  • Raporu düzenli aralıklarla çalıştırarak kullanıcı durumu değişimlerini takip edebilirsiniz.

5. Sonuç

Bu yöntemle PowerShell aracılığıyla Active Directory Module içinden kullanıcı bilgilerini hızlı şekilde raporlayabilir; kullanıcıların etkinlik durumu, son girişleri ve parolaları hakkında değerli bilgiler elde edebilirsiniz. Böylece IT yönetimi ve denetim işlemleri için güçlü ve otomatik bir çözüm oluşturmuş olursunuz.

arif akyuz
Arif Akyüz

image
Başka cihazda görüntüle
Arif Akyüz Sistem Network Yöneticisi ve Siber Güvenlik Uzmanı
Arif Akyüz Sistem Network Yöneticisi ve Siber Güvenlik Uzmanı

Arif Akyüz
Bilgi Teknolojileri
Sistem Network Yöneticisi
ve Siber Güvenlik Uzmanı
[email protected]

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors