AD'de Kullanıcı Hesabını Kimin Oluşturduğu Nasıl Kontrol Edilir?
Bu yazıda, bir kullanıcının Active Directory'de oluşturulduğu tarihi nasıl öğreneceğimize bakacağız; Kullanıcı hesabını kimin oluşturduğu ve kullanıcının etki alanında en son ne zaman oturum açtığı hakkında etki alanı denetleyicisinin olay günlüklerinden bilgi almak için PowerShell'in nasıl kullanılacağı. Bu görevler genellikle Active Directory'deki kullanıcı hesaplarını denetlerken, etkin olmayan AD nesnelerini bulup silerken veya istatistik toplarken ortaya çıkar.
AD Kullanıcı Hesapları Oluşturma Tarihi
Herhangi bir Active Directory nesnesinin (kullanıcı, bilgisayar veya grup) oluşturulma tarihini ADUC (
dsa.msc) grafik ek bileşeni (Görünüm menüsünde Gelişmiş Özellikler seçeneğini etkinleştirdiğinizden emin olun).
ADUC ağacında gerekli kullanıcıyı manuel olarak veya AD arama işlevini kullanarak bulun;
Kullanıcının özelliklerini açın ve Nesne sekmesini seçin;
-
Oluşturuldu alanında nesnenin Active Directory'de oluşturulduğu tarih belirtilir.
Aynı değer, yerleşik AD öznitelik düzenleyicisiyle de elde edilebilir (
whenCreatedbağlanmak).
Ayrıca, bir kullanıcı hesabının oluşturulma tarihini almak için AD PowerShell modülünden Get-ADUser cmdlet'ini kullanabilirsiniz:
Get-ADUser a.brion -properties name,whencreated|select name,whencreatedlastLogon veya lastLogonTimpestamp özniteliklerini kullanarak kullanıcının alana son giriş yaptığı zamanı alabilirsiniz. Etki alanı denetleyicileri güvenlik günlüklerinden kullanıcı oturum açma geçmişini almak istiyorsanız, aşağıdaki kılavuzu kullanın.
PowerShell ile Yakın Zamanda Oluşturulan Active Directory Hesaplarını Bulma
Basit bir PowerShell betiğiyle, Active Directory'de yakın zamanda oluşturulan kullanıcı hesaplarını listeleyebilirsiniz. Bunu yapmak için Get-ADUser cmdlet'ini kullanarak tüm kullanıcıları seçin ve Whencreated kullanıcı özniteliğinin değerine göre filtreleyin. Örneğin, aşağıdaki PowerShell betiği, Active Directory'de son 24 saat içinde oluşturulan kullanıcıları listeler:
$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)} -properties whencreated | Select-Object Name, UserPrincipalName, SamAccountName, whencreated | Export-csv -path $exportcsvBu örnekte, AD hesaplarının listesi, adı geçerli tarih olan bir dosyaya kaydedilir. Bu betiğin Windows Görev Zamanlayıcı aracılığıyla günlük olarak çalışmasını sağlayabilirsiniz. Sonuç olarak, yeni hesapların oluşturulma tarihi ile ilgili bilgileri içeren dosyalar belirttiğiniz dizine kaydedilecektir. Raporunuza Active Directory kullanıcılarının diğer özelliklerini ekleyebilirsiniz (Get-ADUser cmdlet'ini kullanma hakkındaki makaleye bakın).
Active Directory'de Kullanıcı Hesabını Kimin Oluşturduğunu Nasıl Anlarız?
Active Directory etki alanınızda birden çok yönetici varsa veya kullanıcı hesapları oluşturma ve düzenleme izinlerini yönetici olmayan diğer kullanıcılara (örneğin, İK personeline) devrettiyseniz, kullanıcının adıyla ilgili bilgiler ilginizi çekebilir. Active Directory'de belirli hesabı kimin oluşturduğu. Bu bilgiler, Active Directory etki alanı denetleyicilerinin güvenlik günlüklerinde bulunabilir.
Etki alanında yeni bir kullanıcı oluşturduğunuzda, Kullanıcı Hesabı Yönetimi kaynağından Olay Kimliği 4720 olan bir olay, etki alanı denetleyicisinin güvenlik günlüğünde görünür (yalnızca DC'de, hesap oluşturuldu). Varsayılan Etki Alanı Denetleyicisi GPO'sunda Kullanıcı Hesabı Yönetimini Denetle ilkesi etkinleştirilmelidir.
Bu olayın açıklaması şu dizeyi içerir:
A user account was created. Konu alanı, altında yeni AD kullanıcı hesabının oluşturulduğu hesabı içerir (aşağıdaki ekran görüntüsünde vurgulanmıştır). Yeni kullanıcı adı Yeni Hesap alanında belirtilir.
Tüm etki alanı denetleyicilerinden 4720 olay toplamanız gerekir. Get-ADDomainController cmdlet'ini kullanarak DC'lerin bir listesini alabilirsiniz. Ardından olayı kontrol etmek için kalır
4720bunların her biri üzerinde ve bir sonuç raporu oluşturun. Etki alanı denetleyicisi günlüklerinden son 24 saate ait tüm hesap oluşturma olaylarını almaya yönelik komut dosyası şöyle görünebilir:
$Report = @()
$time = (get-date) - (new-timespan -hour 24)
$AllDCs = Get-ADDomainController -Filter *
ForEach($DC in $AllDCs)
{
Get-WinEvent -ComputerName $dc.Name -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"
$objReport = [PSCustomObject]@{
User = $NewUser
Creator = $CreatorUser
DC = $event.Event.System.computer
CreationDate = $Time
}
}
$Report += $objReport
}
}
$ReportSonuç olarak, bir
$Report
AD kullanıcısını kimin, ne zaman ve hangi etki alanı denetleyicisinde oluşturduğu hakkında bilgi içeren nesne.
Raporu bir CSV dosyasına aktarabilirsiniz:
$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:\ps\ad_users_creators” + $filename + “.csv”
$Report | Export-Csv $exportcsv -append -NoTypeInformation -Delimiter ","Bulunan olaylarla ilgili bilgileri DC'deki bir düz metin dosyasına değil, harici bir veritabanına kaydedebilirsiniz. Örneğin, MySQL .NET Connector for PowerShell aracılığıyla MySQL'e veya Microsoft SQL Server'a veri yazabilirsiniz. “Windows'ta Dosya/Klasör Silme Denetimi Nasıl Yapılır” makalesinde bir örnek anlatılmaktadır?
Ayrıca, Microsoft 365/Azure AD kullanıcıları için oluşturma tarihini PowerShell aracılığıyla alabilirsiniz.





