可使用powershell一键重置ad锁定账号,但须先排查锁定原因、确保域管理员权限及ad模块已安装;核心命令为get-aduser配合unlock-adaccount,建议先用-whatif预览,生产环境需充分测试并记录日志。
可以使用powershell一键重置active directory中所有被锁定的账号,但需谨慎操作——必须先确认锁定原因(如暴力破解、误输密码),避免掩盖安全问题;同时需具备域管理员权限,并在生产环境执行前充分测试。
前提条件与权限准备
确保运行脚本的账户具有以下权限:
- 对目标域具有“读取/写入 userAccountControl 属性”及“解锁账户”权限(通常域管理员或账户操作员组成员满足)
- 已安装 Active Directory 模块(Windows Server 上默认包含;Windows 10/11 需先安装 RSAT-AD-PowerShell 功能)
- PowerShell 以“管理员身份”运行,且执行策略允许本地脚本(可临时设为 RemoteSigned:`Set-ExecutionPolicy RemoteSigned -Scope CurrentUser`)
核心命令:查找并解锁所有锁定账号
以下是一行可直接执行的命令(建议先用 -WhatIf 预览):
Get-ADUser -Filter {LockedOut -eq $true} -Properties LockedOut,LastLogonDate | ForEach-Object { Unlock-ADAccount $_.DistinguishedName -WhatIf }
若确认无误,去掉 -WhatIf 执行真实解锁:
Get-ADUser -Filter {LockedOut -eq $true} -Properties LockedOut,LastLogonDate | ForEach-Object { Unlock-ADAccount $_.DistinguishedName }
该命令会:
- 检索当前域中所有 LockedOut = true 的用户对象
- 附带获取 LastLogonDate 方便后续排查高频锁定账号
- 逐个调用 Unlock-ADAccount 解锁(支持传入 DistinguishedName 或 SamAccountName)
增强版脚本:记录日志 + 排除特定OU
实际运维中推荐使用带日志和过滤的脚本,例如排除服务账号所在OU:
# 定义排除的OU路径(如"OU=ServiceAccounts,DC=contoso,DC=com")
$ExcludedOU = "OU=DisabledUsers,DC=contoso,DC=com"
$LogPath = "$env:TEMP\AD_UnlockReport_$(Get-Date -Format 'yyyyMMdd-HHmmss').csv"
Get-ADUser -Filter {LockedOut -eq $true} -Properties LockedOut,LastLogonDate,DistinguishedName,Department |
Where-Object { $_.DistinguishedName -notlike "*$ExcludedOU" } |
ForEach-Object {
Unlock-ADAccount $_.DistinguishedName
[PSCustomObject]@{
SamAccountName = $_.SamAccountName
DisplayName = $_.Name
Department = $_.Department
LastLogon = $_.LastLogonDate
UnlockedAt = Get-Date
}
} | Export-Csv -Path $LogPath -NoTypeInformation -Encoding UTF8
Write-Host "共解锁 $(Import-Csv $LogPath | Measure-Object | Select-Object -ExpandProperty Count) 个账号,日志已保存至:$LogPath"
后续建议与注意事项
解锁只是应急操作,不可替代根本治理:
- 检查域控制器安全日志(事件ID 4740)定位锁定源头(IP、工作站、时间规律)
- 核查账户是否启用了“用户无法更改密码”或“密码永不过期”,这类账号易因密码错误累积锁定
- 对频繁锁定的账号启用 Microsoft ATA 或 Azure AD Identity Protection 进行风险分析
- 考虑设置更合理的账户锁定策略(如:重置计数器时间延长、锁定阈值提高),通过 Group Policy 配置











