解鎖 Active Directory 用戶帳戶
域中的用戶帳戶鎖定是用戶聯繫技術支持團隊的最常見原因之一。在大多數情況下,鎖定是由於用戶忘記密碼或應用程序在用戶更改密碼後嘗試使用以前的(已保存的)密碼進行身份驗證而引起的。
內容:
Active Directory 域的默認安全策略中啟用了用戶帳戶鎖定。
通常,用戶鎖定設置在Default Domain PolicyGPO(配置->Windows 設置->安全 設置->賬戶 政策->賬戶 閉鎖 政策)。有以下三種選擇:
- 帳戶 閉鎖 臨界點– 嘗試輸入密碼失敗的次數,之後用戶將被鎖定;
- 賬戶鎖定時長– 用戶被鎖定的時間(以分鐘為單位)。然後用戶會自動解鎖;
- 重置帳戶鎖定計數器後 –重置失敗登錄計數器之前的分鐘數。

這些鎖定設置適用於所有域用戶,但已使用細粒度密碼策略分配特殊設置的組除外。
詳細了解 AD 中的密碼策略。
Microsoft 安全基線建議用戶應在以下時間後被鎖定:10登錄嘗試失敗。這被認為是防止密碼暴力和 DoS 攻擊的最佳選擇,並且對於在輸入密碼時經常出錯的用戶來說很方便。
Entra ID(例如 Azure AD)中的默認密碼策略會在 10 次嘗試登錄失敗後鎖定用戶帳戶。
如何使用 Active Directory 控制台 (ADUC) 解鎖用戶帳戶
如果用戶帳戶被鎖定,您在嘗試登錄 Windows 時將看到以下消息:
The referenced account is currently locked out and may not be logged on to.


如果域用戶經常抱怨其帳戶被鎖定,您可以通過查找事件 ID 來查找不斷導致鎖定的計算機和進程4740和4625在主域控制器安全日誌中(請參閱如何在 Active Directory 中查找帳戶鎖定源)。
在鎖定期到期或管理員手動解鎖帳戶之前,用戶將無法登錄 Windows。
您可以使用 Active Directory 用戶和計算機 (ADUC) 圖形控制台解鎖用戶:
- 打開
dsa.msc控制台並找到您要解鎖的AD用戶; - 單擊帳戶選項卡。如果用戶被鎖定,此處應該有一條消息
Unlock account. This account is currently locked out on this Active Directory Domain Controller; - 勾選此選項並點擊確定保存更改;
- 用戶帳戶已解鎖,可用於登錄域。


默認情況下,只有域管理員才能解鎖 AD 中的用戶。您可以將解鎖權限委派給非管理員用戶,以便他們可以解鎖帳戶。
- 單擊包含要向其委派權限的用戶的組織單位 (OU),然後選擇委託控制;


- 選擇您想要授予權限的一組用戶(例如,nyHelpDesk);
- 然後選擇創建自定義任務->文件夾中僅包含以下對象->用戶對象;
- 在權限列表中,勾選寫入鎖定時間盒子;


- 現在 nyHelpDesk 組的成員可以解鎖用戶。
您可以啟用審核策略,以找出誰解鎖了用戶帳戶:
- 啟用審核用戶帳戶管理政策在
Default Domain ControllerGPO(計算機配置 -> 策略 -> Windows 設置 -> 安全設置 -> 高級審核策略配置 -> 審核策略 -> 帳戶管理); - 然後,您可以通過查找 EventID 來跟踪用戶解鎖事件4767在安全登錄域控制器(
A user account was unlocked);

- 您還可以使用 PowerShell 按事件 ID 查找事件:
Get-WinEvent -FilterHashtable @{logname="Security";id=4767}|ft TimeCreated,Id,Message


增加域控制器上的事件查看器日誌大小以存儲更多事件。
使用 PowerShell 解鎖 AD 帳戶
您可以使用Unlock-ADAccount用於解鎖 AD 用戶的 PowerShell cmdlet。此 cmdlet 包含在 Windows PowerShell 的 AD 模塊中。
檢查用戶是否被鎖定(Lockedout = true):
Get-ADUser -Identity j.brion -Properties LockedOut,DisplayName | Select-Object samaccountName, displayName,Lockedout
使用以下命令解鎖 AD 用戶:
Unlock-ADAccount j.brion
另請閱讀:如何在不登錄的情況下解鎖 Active Directory 用戶帳戶


您可以使用 PowerShell 查看鎖定時間、上次登錄日期以及更改用戶密碼的日期:
Get-ADUser j.brion -Properties Name,Lockedout, lastLogonTimestamp,lockoutTime,pwdLastSet | Select-Object Name, Lockedout,@{n='LastLogon';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},@{n='lockoutTime';e={[DateTime]::FromFileTime($_.lockoutTime)}},@{n='pwdLastSet';e={[DateTime]::FromFileTime($_.pwdLastSet)}}


您可以使用 Search-ADAccount cmdlet 查找域中所有鎖定的用戶:
Search-ADAccount -UsersOnly -lockedout
通過簡單的 PowerShell 語句,您可以一次性解鎖所有域用戶:
Search-ADAccount -UsersOnly -lockedout| Unlock-ADAccount
