Active Directory’de Tüm Kullanıcıların Son Giriş Tarihini PowerShell ile Listeleme

Active Directory’de Tüm Kullanıcıların Son Giriş Tarihini PowerShell ile Listeleme

Kurumsal ağlarda kullanıcı hesaplarının ne zaman sisteme giriş yaptığını takip etmek birçok yönetimsel ve güvenlik senaryosunda büyük önem taşır. Özellikle kullanılmayan hesapların tespiti, güvenlik denetimleri ve lisans yönetimi gibi konularda kullanıcıların son oturum açma tarihlerini raporlamak sıkça ihtiyaç duyulan bir işlemdir.

Bu yazıda, Active Directory ortamında tüm kullanıcıların son giriş tarihlerini PowerShell kullanarak nasıl listeleyebileceğinizi adım adım anlatacağız.

LastLogon ve LastLogonDate Arasındaki Fark

Active Directory’de kullanıcıların son giriş bilgilerini saklayan birkaç farklı alan bulunmaktadır:

  • LastLogon: Her Domain Controller üzerinde ayrı tutulur ve replike edilmez.
  • LastLogonTimestamp: Domain Controller’lar arasında replike edilir ancak güncellenmesinde gecikmeler olabilir.
  • LastLogonDate: PowerShell tarafından okunması kolaylaştırılmış ve raporlama için en sık kullanılan alandır.

Çoğu raporlama ihtiyacı için LastLogonDate alanı yeterlidir.

Tüm Kullanıcıların Son Giriş Tarihini Listeleme

Aşağıdaki PowerShell komutu Active Directory üzerindeki tüm kullanıcıları ve son giriş tarihlerini listeler:

Import-Module ActiveDirectory

Get-ADUser -Filter * -Properties LastLogonDate |
Select-Object Name, SamAccountName, LastLogonDate |
Sort-Object LastLogonDate

Sonuçları CSV Dosyasına Aktarma

Büyük yapılarda sonuçları Excel’e aktarmak daha kullanışlı olacaktır:

Import-Module ActiveDirectory

$Users = Get-ADUser -Filter * -Properties DisplayName, SamAccountName, Enabled, LastLogonDate

$Users |
Select-Object Name,
              DisplayName,
              SamAccountName,
              Enabled,
              LastLogonDate |
Export-Csv "C:\Temp\AD_LastLogon.csv" -NoTypeInformation -Encoding UTF8

Bu işlem sonucunda tüm kullanıcıların son giriş bilgilerini içeren bir CSV dosyası oluşturulur.

Son 90 Gündür Giriş Yapmayan Kullanıcıları Bulma

Güvenlik açısından uzun süredir kullanılmayan hesapların tespit edilmesi önemlidir.

$Date = (Get-Date).AddDays(-90)

Get-ADUser -Filter * -Properties LastLogonDate, Enabled |
Where-Object {
    $_.Enabled -eq $true -and
    ($_.LastLogonDate -lt $Date -or $_.LastLogonDate -eq $null)
} |
Select-Object Name, SamAccountName, LastLogonDate

Bu komut son 90 gün içerisinde giriş yapmamış aktif kullanıcıları listeler.

LastLogonDate Verisinin Sınırları

LastLogonDate bilgisi replike edilen bir veri olduğundan, bazı ortamlarda birkaç günlük gecikme yaşanabilir. Güvenlik denetimleri veya adli analiz gibi durumlarda kesin sonuç isteniyorsa tüm Domain Controller’lar ayrı ayrı sorgulanmalıdır.

Sonuç

PowerShell ve Active Directory modülü sayesinde kullanıcıların son oturum açma tarihlerini raporlamak oldukça kolaydır. Bu raporlar sayesinde:

  • Kullanılmayan hesapları tespit edebilirsiniz.
  • Güvenlik denetimlerini kolaylaştırabilirsiniz.
  • Lisans ve kullanıcı yönetimini optimize edebilirsiniz.
  • Kurumsal BT süreçlerinde daha sağlıklı kararlar alabilirsiniz.

Bilgim olarak Active Directory yönetimi, PowerShell otomasyonları ve kurumsal sistem yönetimi konularında işletmelere profesyonel çözümler sunuyoruz.

Related Post