組織中的用戶會忘記他們的密碼嗎?當然不會!有活動目錄用戶鎖定了他們的帳戶嗎?不可能!讓我們看看如何使用PowerShell在活動目錄中查找已鎖定的用戶!
停止在活動目錄中苦苦掙扎於密碼重設調用和帳戶鎖定。 獲得Specops uReset的免費試用。
您的網絡曾經感染過嘗試使用盡可能多的域用戶帳戶進行身份驗證的惡意軟件嗎?希望不會,但我見過幾次。用戶和蠕蟲只是導致一個或多個AD帳戶被鎖定的原因之一。根據您的密碼策略,鎖定可能每天發生,也可能偶爾發生。
無論原因或情況如何,帳戶鎖定都會影響您的用戶。因為他們幾乎在所有事情上都依賴其活動目錄域帳戶,所以當帳戶被鎖定時,他們會立即注意到。您的幫助台可以重新啟用帳戶,但如果再次發生呢?…再次。…再次。弄清楚這個問題的根本原因很重要。
一種方法是使用 PowerShell 和 ActiveDirectory 模組。透過在 Active Directory 模組 內使用 Search-AdAccount
cmdlet,您可以輕鬆追蹤整個域中目前被鎖定的所有帳戶。
相關: 如何安裝 Active Directory PowerShell 模組
使用 PowerShell 在 Active Directory 中尋找被鎖定的使用者
要搜尋被鎖定的帳戶,您可以運行 Search-AdAccount
命令,使用 LockedOut
參數。只要您有權限查看,這將返回所有目前被鎖定的使用者。
這個命令很好,但如果您有一個帳戶不斷被鎖定,您需要找出它是來自哪個系統嗎?每當您的網絡中有惡意軟件感染或者當您有一個健忘的管理員忘記登出遠程桌面會話時,這是一個常見的任務。這種事情從來沒發生過,對吧?
要找到 Active Directory 鎖定的來源,首先確保您正在查詢正確的域控制器。在這種情況下,這將是擁有 PDC 模擬器角色的域控制器。
查找 PDC 模擬器角色持有者
所有密码验证都将传送到持有PDCe角色的该域控制器,因此始终是检查的最佳位置。要找到具有PDCe角色的域控制器,可以检查从Get-ADDomain cmdlet返回的PDCEmulator属性。
在事件日志中搜索锁定
一旦您找到持有PDCe角色的域控制器,然后需要查询该域控制器的安全事件日志(安全日志)以获取事件ID 4740。事件ID 4740是每次帐户锁定时注册的事件。您可以使用Get-WinEvent cmdlet执行此操作。
您离使用PowerShell在Active Directory中找到被锁定的用户更近了!
解析用户名和位置
这将返回所有锁定事件,但不会立即显示锁定操作发生的用户名和计算机。要查找用户名,您需要深入了解Get-WinEvent返回的名为Properties的属性。
您可以看到我已将散列表过滤器移到了防止代码换行的位置,并且更重要的是,使用Select-Object的计算属性从Properties属性中获取用户名和计算机名。在这些事件中,被锁定的用户名始终是Properties数组中的第一个元素,而第二个元素始终是执行锁定操作的计算机名。
利用PowerShell解锁AD帐户
現在您已經找到被鎖定的AD使用者,您將如何解鎖這些帳戶?在PowerShell中,ActiveDirectory
模組提供了Unlock-ADAccount
命令,可以快速恢復客戶的工作狀態。如下所示,使用PowerShell來解鎖AD帳戶。此命令在Windows PowerShell和PowerShell 7中均可使用,一旦通過ActiveDirectory
模組加載。
也許您希望一次解鎖所有被鎖定的使用者,可以使用Search-ADAccount
命令並帶上-LockedOut
參數,然後將結果傳送到Unlock-ADAccount
命令,如下所示。
通過自助密碼重置解決方案,減少服務台呼叫並更新遠程用戶的緩存憑證,即使在VPN斷開情況下也可使用。立即獲取Specops uReset的演示!
摘要

到目前為止,您應該能夠快速找出您域中目前被鎖定的所有帳戶,以及查看所有帳戶鎖定的歷史記錄。現在是時候嚴肅地跟Joe談談關於留下那些RDP會話開啟的事情了…
Source:
https://adamtheautomator.com/find-locked-out-users-in-active-directory-powershell/