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.