Active Directory ortamında bir kullanıcı hesabının kilidini açmak çoğu zaman sorunu yalnızca geçici olarak çözer. Hesap kısa süre sonra yeniden kilitleniyorsa asıl amaç, yanlış kimlik doğrulama denemesinin hangi bilgisayar, servis, görev veya uygulamadan geldiğini bulmaktır.
Bu rehberde kullanıcı hesabı kilitlenmelerini Event ID 4740, PowerShell ve Active Directory araçlarıyla sistematik biçimde nasıl analiz edebileceğinizi ele alıyorum.
Problem: Active Directory Kullanıcı Hesabı Sürekli Kilitleniyor
Tipik senaryoda kullanıcı doğru parolayı girdiğini söyler ancak hesabı belirli aralıklarla yeniden kilitlenir. Bunun nedeni çoğu zaman kullanıcının aktif oturumundan farklı bir noktada saklanmış eski paroladır.
Yaygın kaynaklar arasında Windows Credential Manager, mapped drive bağlantıları, servisler, Scheduled Task görevleri, VPN istemcileri, eski oturumlar ve kullanıcı hesabıyla çalışan uygulamalar bulunur.
Ön Koşullar
- Active Directory ortamına gerekli yönetim yetkisi
- Domain Controller Security loglarını okuyabilme
- Active Directory PowerShell modülü
- Hesap yönetimi denetim kayıtlarının etkin olması
1. Hesabın Gerçekten Kilitli Olduğunu Kontrol Edin
Active Directory PowerShell modülü bulunan bir yönetim bilgisayarında kilitli hesapları listeleyebilirsiniz:
Search-ADAccount -LockedOut -UsersOnly
Belirli bir kullanıcı için hesap özelliklerini kontrol etmek için:
Get-ADUser -Identity kullaniciadi -Properties LockedOut,BadPwdCount,LastBadPasswordAttempt |
Select-Object SamAccountName,LockedOut,BadPwdCount,LastBadPasswordAttempt
2. Event ID 4740 Kaydını Bulun
Windows Security logundaki Event ID 4740, bir kullanıcı hesabının kilitlendiğini gösterir. Event Viewer üzerinde:
Windows Logs → Security → Filter Current Log → 4740
Olay ayrıntılarında özellikle şu alanları kontrol edin:
- Account Name: Kilitlenen kullanıcı
- Caller Computer Name: Kilitlenmeye neden olan kimlik doğrulama isteğinin geldiği bilgisayar
- Time Created: Kilitlenmenin gerçekleştiği zaman
Caller Computer Name alanı doluysa troubleshooting işlemini doğrudan bu bilgisayarda yoğunlaştırabilirsiniz.
3. Event ID 4740 Kayıtlarını PowerShell ile Arayın
Security logundaki son hesap kilitlenmelerini görüntülemek için:
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4740
} -MaxEvents 50 | Select-Object TimeCreated,Id,Message
Belirli bir kullanıcıyı filtrelemek için:
$User = 'kullaniciadi'
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4740
} | Where-Object {
$_.Message -match $User
} | Select-Object TimeCreated,Message
4. Kilitlenmeyi Tetikleyen Bilgisayarı İnceleyin
Kaynak bilgisayar belirlendikten sonra yalnızca kullanıcının interaktif oturumuna bakmak yeterli değildir. Aşağıdaki noktaları sırayla kontrol edin:
- Credential Manager içinde kayıtlı eski kullanıcı/parola bilgileri
- Eski parola ile bağlanan mapped network drive’lar
- Kullanıcı hesabıyla çalışan Windows servisleri
- Scheduled Task görevlerinde kayıtlı kullanıcı bilgileri
- VPN, RDP veya diğer uzak erişim istemcileri
- Eski parola saklayan kurumsal uygulamalar
- Açık kalmış eski kullanıcı oturumları
Credential Manager Kontrolü
Kaynak bilgisayarda Control Panel → Credential Manager → Windows Credentials bölümünü kontrol edin. Kullanıcı hesabına ait eski kimlik bilgileri varsa ilgili uygulamanın etkisini doğruladıktan sonra güncelleyin veya kaldırın.
Scheduled Task Kontrolü
Kullanıcı hesabıyla çalışan görevleri araştırın:
Get-ScheduledTask | Where-Object {
$_.Principal.UserId -match 'kullaniciadi'
} | Select-Object TaskName,TaskPath,State,@{N='RunAs';E={$_.Principal.UserId}}
Windows Servislerini Kontrol Edin
Get-CimInstance Win32_Service |
Where-Object {$_.StartName -match 'kullaniciadi'} |
Select-Object Name,StartName,State
5. İlgili Başarısız Oturum Açma Olaylarını İnceleyin
4740 olayının gerçekleştiği zaman aralığında başarısız kimlik doğrulama kayıtlarını da inceleyin. Özellikle Event ID 4625 gibi başarısız oturum açma olayları, hangi logon türünün veya kaynağın probleme eşlik ettiğini anlamaya yardımcı olabilir.
Tek bir Event ID’ye bakarak neden hakkında kesin karar vermek yerine olay zamanı, kullanıcı, kaynak sistem ve ilgili authentication kayıtlarını birlikte değerlendirin.
6. Hesabın Kilidini PowerShell ile Açma
Kaynağı tespit edip eski credential sorununu giderdikten sonra hesabın kilidini açabilirsiniz:
Unlock-ADAccount -Identity kullaniciadi
Kilitli tüm kullanıcıları görüntülemek için:
Search-ADAccount -LockedOut -UsersOnly |
Select-Object Name,SamAccountName,DistinguishedName
Önemli: Kaynağı düzeltmeden yalnızca Unlock-ADAccount çalıştırmak kalıcı çözüm değildir. Eski parola kullanılmaya devam ediyorsa hesap yeniden kilitlenebilir.
Caller Computer Name Boşsa Ne Yapılmalı?
4740 kaydında Caller Computer Name her senaryoda yeterli bilgi vermeyebilir. Böyle bir durumda kilitlenme zamanını referans alarak ilgili Domain Controller’lardaki başarısız authentication olaylarını, kullanıcının kullandığı cihazları ve kullanıcı kimliğiyle çalışan servis/görevleri birlikte inceleyin.
Troubleshooting Kontrol Listesi
- Kullanıcının gerçekten locked out durumda olduğunu doğrulayın.
- Kilitlenme zamanını kaydedin.
- Domain Controller Security loglarında Event ID 4740’ı bulun.
- Caller Computer Name bilgisini kontrol edin.
- Kaynak bilgisayardaki Credential Manager kayıtlarını inceleyin.
- Mapped drive, Scheduled Task ve servis hesaplarını kontrol edin.
- Aynı zaman aralığındaki başarısız logon olaylarını karşılaştırın.
- Eski credential kaynağını giderin.
- Hesabın kilidini açın.
- Yeni 4740 oluşup oluşmadığını izleyerek çözümü doğrulayın.
Güvenlik ve Best Practice
Account lockout politikasını yalnızca kullanıcı şikayetini azaltmak amacıyla gevşetmek doğru yaklaşım değildir. Sürekli kilitlenmeler yanlış yapılandırılmış bir servis veya eski credential kadar parola denemesi yapan beklenmeyen bir sistemin de göstergesi olabilir.
Özellikle ayrıcalıklı hesaplarda 4740 olaylarını izlemek ve beklenmeyen kaynak bilgisayarlardan gelen kilitlenmeleri araştırmak güvenlik açısından önemlidir.
Sonuç
Active Directory kullanıcı hesabı sürekli kilitleniyorsa çözüm yalnızca hesabı unlock etmek değildir. Event ID 4740 ile kilitlenmenin zamanını ve mümkünse Caller Computer Name bilgisini belirleyin; ardından kaynak cihazdaki eski credential, servis, Scheduled Task ve bağlantıları inceleyin. Kaynak ortadan kaldırıldıktan sonra hesabı açın ve yeni kilitlenme oluşmadığını doğrulayın.
İlgili Rehberler
- PowerShell Komutları – Profesyonel Rehber
- Active Directory LAPS Kurulumu – Windows LAPS Rehberi
- PowerShell ile Event Log Yönetimi
- PowerShell ile Active Directory Kullanıcılarını CSV’ye Aktarma
