Active Directory hesabının kilitlenmesi, bir kullanıcınız için sıklıkla meydana gelen bir şeydir. Birdenbire Outlook kullanıyorlarsa, hatta masalarından uzaktalarsa ve hesap kilitlenirse sinir bozucu olabilir. Bir aktif dizin hesabını neyin kilitlediğini nasıl anlarız? Hızlı cevap bir kez daha Powershell ve Get-WinEvent’tir.
#requires -Module ActiveDirectory Function Get-AccountLockoutStatus { [CmdletBinding()] param( [Parameter( ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Position=0)] [string[]] $ComputerName = (Get-ADDomainController -Filter * | select -ExpandProperty Name), [Parameter()] [string] $Username, [Parameter()] [int] $DaysFromToday = 3 ) BEGIN { $Object = @() } PROCESS { Foreach ($Computer in $ComputerName) { try { $EventID = Get-WinEvent -ComputerName $Computer -FilterHashtable @{Logname = 'Security'; ID = 4740; StartTime = (Get-Date).AddDays(-$DaysFromToday)} -EA 0 Foreach ($Event in $EventID) { $Properties = @{Computername = $Computer Time = $Event.TimeCreated Username = $Event.Properties.value[0] CallerComputer = $Event.Properties.value[1] } $Object += New-Object -TypeName PSObject -Property $Properties | Select ComputerName, Username, Time, CallerComputer } } catch { $ErrorMessage = $Computer + " Error: " + $_.Exception.Message } finally { if ($Username) { Write-Output $Object | Where-Object {$_.Username -eq $Username} } else { Write-Output $Object } $Object = $null } } } END {} }
Get-AccountLockoutStatus komutu ile locked durumda olan tüm kullanıcılar sorgulanır,
Get-AccountLockoutStatus -Username xxx komuut ile hedef kullanıcıyı sorgulayabiliriz,
Komut dosyasını çalıştırdıktan sonra, CallerComputer sütununu fark etmelisiniz çünkü bu, hesap kilitlemelerinin kaynak bilgisayarıdır. Kimlik bilgisi yöneticisine gidebilir ve sistemin önbelleğe alınmış tüm kimlik bilgilerini kaldırabilir veya bilgisayarda neler olduğunu görebilirsiniz.
Parolanızı değiştirmenize rağmen hala kilitlenmeler devam ediyorsa,
cmd ya da powershell üzerinden
rundll32.exe keymgr.dll, KRShowKeyMgr
komutunu çalıştırın ve Store User Names and Password uygulaması açılacak, ora üzerinden parola güncellemesini yapabilir ya da tüm kimlik bilgilerini silebilirsiniz, hala kilitlenme devam ediyorsa, MMC üzerinden makine üzerinde expire olmuş sertifikaları silin, Windows Hello girişini iptal edebiliriz, sorun hala devam ediyorsa istemciyi domainden düşürüp tekrardan almayı denemekte fayda var. Başımıza gelmiş saçma bir sorunu bu şekilde çözmüşlüğümüz var.
Merhaba, verdiğiniz bilgiler ve sağladığınız kolaylıklar için teşekkür ediyorum, yazılarınızdan aktif olarak faydalanıyorum.
size bir sorum olacak;
bu komutu $Credential bilgisi ile birlikte nasıl harmanlayabilirim?
örneğin “Get-AccountLockoutStatus -Crential” yazınca bana user pass sorsa ve bu bilgilerde AD’de sorgu yapsa?
birşeyler denedim ancak başaramadım
Savaş Hocam Merhaba,
Yorumunuz için teşekkür ederim. Neden kimlik doğrulama yaptırmak istiyorsunuz acaba? Herhangi bir yapılandırma uygulanmamış ortamda her kullanıcının domain yapısında sorgu yapma yetkisi vardır. Fakat kıstılama yapıldıysa zaten powershell üzerinde sorgu çalıştırdığınızda sizden işlemi gerçekleştiremeyeceğinize dair uyarı veriyordur diye düşünüyorum. Bu esnada da powershell de kimlik doğrulama yapmanız gerekiyordur. Aşağıda örnek bir kimlik doğrulama işlemini inceleyebilirsiniz.
https://www.onurbabur.com/powershell-de-parola-kullanimi/
Tabi burada Get-AccountLockoutStatus -Credential olarak düşünmeyelim DC de kimlik doğrulaması yaptıracak şekilde yapılandırmakta fayda var. DC de kimlik doğrulama yaptıktan sonra yine yukarda ki AccountLockoutStatus function işlemini çalıştırabilirsiniz.
Detay bilgi verirseniz, biraz daha örneklendirerek süreci detaylandırıp, dallandırabiliriz.
Teşekkürler,