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.