Son 24 saatte oluşturulan Active Directory hesaplarını almak


Son 24 saat içinde Active Directory’de oluşturulan kullanıcıların listesini almak için, Get-ADUser PowerShell cmdlet’ini kullanmamız gerekiyor. Cmdlet sonuçları, hesabın oluşturulduğu tarih ve saati depolayan, kullanıcı tarafından oluşturulan kullanıcı attribute tarafından filtrelenecektir. Aşağıdaki basit powershell betiğini inceleyebilirsiniz.

$lastday = ((Get-Date).AddDays(-1))
$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:\ps\new_ad_users_” + $filename + “.csv”
Get-ADUser -filter {(whencreated -ge $lastday)} | Export-csv -path $exportcsv

Bu örnekte, AD hesaplarının listesi, geçerli tarihin adı olarak bir dosyaya kaydedilir. Görev Zamanlayıcısı’nı kullanarak, bu komut dosyasını günlük olarak çalıştırabilirsiniz ve her hesabın oluşturulduğu tarih hakkındaki bilgileri içeren dosyaları belirlediğiz bir dosyaya kaydedebilirsiniz. Active Directory kullanıcılarının diğer attribute’lerini raporunuza ekleyebilirsiniz.

Active Directory’de kullanıcı hesabını oluşturan nasıl bulunur?

Bir hesap oluşturmanın yanı sıra, güvenlik uzmanları Active Directory’de belirli hesabı oluşturan kullanıcının adıyla ilgili bilgilerle ilgilenebilir. Bu bilgi, Active Directory etki alanı denetleyicilerinin güvenlik günlüklerinde bulunabilir.

Yeni bir kullanıcı oluşturulduğunda, etki alanı denetleyicisinin güvenlik günlüğünde EvenId 4720 içeren bir olay görüntülenir.(yalnızca hesabın oluşturulduğu DC’de) Default Domain Controller Policy’de Audit User Account Management ilkesini etkinleştirmeniz gerekmektedir.

İlgili event’in içeriği şöyledir. “A user account was created” ve yeni bir AD kullanıcı hesabı oluşturmak için kullanılan hesabı göstermektedir. (aşağıdaki ekran görüntüsünde görebilirsiniz)

Son 24 saatteki hesap oluşturma işlemine ait tüm event’leri domain controller loglarından almak için aşağıdaki komuta göz gezdirebilirsiniz.

$time = (get-date) – (new-timespan -hour 24)
$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:\ps\ad_users_creators” + $filename + “.csv”
Get-WinEvent -FilterHashtable @{LogName=”Security”;ID=4720;StartTime=$Time}| Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat “%Y-%m-%d %H:%M:%S”
$CreatorUser = $event.Event.EventData.Data[4].”#text”
$NewUser = $event.Event.EventData.Data[0].”#text”
$dc = $event.Event.System.computer
$dc + “|” + $Time + “|” + $NewUser + “|” + $CreatorUser| out-file $exportcsv -append
}
}

KAYNAKPOWERSHELL