×
PowerShell ile Active Directory Kullanıcılarının Son Giriş Tarihini Listeleme

PowerShell ile Active Directory Kullanıcılarının Son Giriş Tarihini Listeleme

Merhaba, bu yazımda sizlere PowerShell ile Active Directory Kullanıcılarının Son Giriş Tarihini Listeleme konusundan bahsedeceğim. Domain ortamında PowerShell kullanarak tüm kullanıcıların Last Logon bilgilerini çekmek için aşağıdaki adımları izleyebilirsiniz.

1. Active Directory Modülü Kontrolü

Bu komutu çalıştırabilmek için Active Directory modülünün yüklü olduğundan emin olun. Active Directory modülü, Windows Server’da genellikle Active Directory Yönetim Araçları yüklendiğinde gelir. Windows 10/11’de RSAT (Remote Server Administration Tools) yüklemeniz gerekebilir.

2. PowerShell Komutu

Aşağıdaki komut, Active Directory içindeki tüm kullanıcıların son giriş zamanlarını (`lastLogonTimestamp`) çeker:

# Active Directory modülünü içe aktar
Import-Module ActiveDirectory

#Tüm kullanıcıları çek ve lastLogon bilgilerini listele
Get-ADUser -Filter * -Properties SamAccountName, LastLogonTimestamp |
Select-Object SamAccountName, @{Name=”LastLogon”; Expression={[DateTime]::FromFileTime($_.LastLogonTimestamp).ToString(“yyyy-MM-dd HH:mm:ss”)}} |
Sort-Object LastLogon

3. Komutun Çıktısı

Bu komut:
– Tüm kullanıcıları alır.
– Kullanıcıların `SamAccountName` (kullanıcı adı) ve `LastLogonTimestamp` (son giriş zamanı) özelliklerini seçer.
– Tarihi okunabilir bir formata çevirir.
– Kullanıcıları son giriş tarihine göre sıralar.

4. Notlar

`LastLogonTimestamp`, son giriş tarihinin yaklaşık bir bilgisini verir ve genellikle 14 günlük bir replikasyon aralığına sahiptir. Daha kesin bilgi için `lastLogon` özelliğini kullanmanız gerekebilir, ancak bu özellik yalnızca tek bir DC’den alınır.

Tüm DC’lerden kesin bilgi çekmek için aşağıdaki gibi bir yöntem kullanabilirsiniz:

$users = Get-ADUser -Filter * -Properties SamAccountName
foreach ($user in $users) {
$DCs = Get-ADDomainController -Filter * | Select-Object -ExpandProperty HostName
foreach ($dc in $DCs) {
$lastLogon = (Get-ADUser $user.SamAccountName -Server $dc -Properties LastLogon).LastLogon
if ($lastLogon) {
[PSCustomObject]@{
SamAccountName = $user.SamAccountName
LastLogon = [DateTime]::FromFileTime($lastLogon)
DomainController = $dc}

5. CSV Dosyasına Aktarma

Sonuçları bir CSV dosyasına aktarmak için şu komutu ekleyebilirsiniz:

Get-ADUser -Filter * -Properties SamAccountName, LastLogonTimestamp |

Select-Object SamAccountName, @{Name=”LastLogon”; Expression

{[DateTime]::FromFileTime($_.LastLogonTimestamp).ToString(“yyyy-MM-dd HH:mm:ss”)}} |

Export-Csv -Path “C:\Users\Public\LastLogonReport.csv” -NoTypeInformation -Encoding UTF8

Bu komut dosya yolunda LastLogonReport.csv isimli bir dosya oluşturacaktır. Bu dosyayı Excel ile açarak kolayca inceleyebilirsiniz. Bu yazımda sizlere PowerShell ile Active Directory Kullanıcılarının Son Giriş Tarihini Listeleme konusundan bahsettim. Faydalı olması dileğiyle.


 

1988 İstanbul doğumluyum. Bilgisayar dünyasına olan hayranlığım çok küçük yaşlarda başladı. Bu sebeple sistem alanında kendimi geliştirmeye karar verdim. Celal Bayar Üniversitesi Bilgisayar Programcılığı ve Anadolu Üniversitesi İşletme mezunuyum. Beykent Üniversitesi'nde Yönetim Bilişim Sistemleri Bölümü'nde yüksek lisans eğitimimi tamamladım. 2005 yılında Bilge Adam Sistem & Network Mühendisliği eğitimi aldım. Hemen ardından IT dünyasına giriş yaptım. Collezione şirketinde 2006 - 2018 yılları arasında Sistem Uzmanı olarak görev yaptım. 2018 Temmuz ayından beri LCWAIKIKI şirketinde System Engineer pozisyonunda çalışmaktayım. Sektörde 19 yıllık deneyime sahibim. Birçok önemli projede görev aldım. Sayfanın en alt kısmından Linkedin profilime ulaşabilirsiniz. Bilgi ve tecrübemi hem bu blog üzerinde hem de Çözümpark Bilişim Portalı üzerinde paylaşıyorum.

Yorum gönder