Tayyip Eser
ENin
← Arşive dön

Doküman · 18 Ağu 2026

Active Directory’de yanlış parola denemelerini bulma

badPwdCount ve badPasswordTime alanlarıyla hesap kilitlenmesi araştırması için pratik PowerShell sorgusu.

Active DirectoryPowerShellHesap Kilitlenmesi

Kısa cevap Kullanıcı nesnesinden son yanlış parola zamanını kontrol edin; gerçek kilitlenme kaynağını ise etki alanı denetleyicisindeki 4740 numaralı güvenlik olayından bulun.

01

Gerekenler

  • Active Directory PowerShell modülü bulunan bir yönetim cihazı
  • Kullanıcı nesnesini okuma ve güvenlik günlüğünü görüntüleme yetkisi
  • İncelenecek kullanıcının doğru oturum adı
02

Son yanlış parola denemesini kontrol edin

# Kullanıcı adını kendi ortamınıza göre değiştirin
$Kullanici = "ORNEK.KULLANICI"

Get-ADUser $Kullanici -Properties badPwdCount,badPasswordTime,LockedOut |
Select-Object SamAccountName, LockedOut, badPwdCount,
@{Name="SonYanlisParolaZamani";Expression={
  if ($_.badPasswordTime -gt 0) {
    [datetime]::FromFileTime($_.badPasswordTime)
  }
}}
Çıktıyı böyle okuyun

LockedOut hesabın şu anda kilitli olup olmadığını, badPwdCount ilgili etki alanı denetleyicisindeki yanlış deneme sayısını, SonYanlisParolaZamani son denemenin zamanını gösterir.

03

Kilitleyen cihazı bulun

Komutu kilitlenme olayını kaydeden etki alanı denetleyicisinde yönetici PowerShell ile çalıştırın.

# Hesabı kilitleyen cihazı olay kaydından bulun
$Kullanici = "ORNEK.KULLANICI"

Get-WinEvent -FilterHashtable @{
  LogName = "Security"
  Id      = 4740
} -ErrorAction SilentlyContinue |
Where-Object { $_.Properties[0].Value -eq $Kullanici } |
Select-Object -First 10 TimeCreated,
@{Name="Kullanici";Expression={$_.Properties[0].Value}},
@{Name="KaynakBilgisayar";Expression={$_.Properties[1].Value}}

KaynakBilgisayar alanı, yanlış parolayı gönderen bilgisayarı veya sunucuyu gösterir. Ardından o cihazdaki kayıtlı kimlik bilgilerini, görevleri, servisleri, Outlook’u, telefonu ve VPN bağlantısını kontrol edin.

04

Önemli not

badPwdCount her etki alanı denetleyicisinde farklı olabilir; tek başına kesin kilitlenme nedeni değildir. Kesin kaynak için 4740 olayı ve olay zamanı esas alınmalıdır. Güvenlik günlüğü boşsa yanlış sunucuyu kontrol ediyor veya olay saklama süresi geçmiş olabilir.

+

Tüm etki alanı denetleyicilerinde arama

4740 olayının hangi DC'ye yazıldığını bilmiyorsanız son 24 saati toplu tarayın. Büyük ortamlarda süreyi daha kısa tutun.

# Son 24 saatteki 4740 olaylarını tüm DC'lerde ara
$Kullanici = "ORNEK.KULLANICI"
Get-ADDomainController -Filter * | ForEach-Object {
  $DC = $_.HostName
  Get-WinEvent -ComputerName $DC -FilterHashtable @{
    LogName="Security"; Id=4740; StartTime=(Get-Date).AddHours(-24)
  } -ErrorAction SilentlyContinue |
  Where-Object { $_.Properties[0].Value -eq $Kullanici } |
  Select-Object TimeCreated,
    @{N="DomainController";E={$DC}},
    @{N="KaynakBilgisayar";E={$_.Properties[1].Value}}
} | Sort-Object TimeCreated -Descending