账户锁定是 IT 管理员管理 AD 环境时最常处理的问题之一。常用方法是使用 Search-ADAccount PowerShell cmdlet 快速检查 AD 账户是否被锁定,或查找整个域中所有被锁定的用户。虽然这些脚本功能强大,但生成详细报告——尤其是审计报告——可能比较复杂。为了更简单的方式,您可以使用 AD account locked out users report,该报告可在 ADManager Plus 中获得。
本文将引导您了解查找和管理被锁定 AD 账户所需的 PowerShell 脚本,并展示如何通过 ADManager Plus 仅需几次点击即可完成相同任务。
下表比较了使用 PowerShell 与 ADManager Plus 查找被锁定 AD 账户的方法。
要使用 PowerShell 查找被锁定的 AD 账户,请以管理员身份打开 Windows PowerShell 并执行以下脚本:
Search-ADAccount -LockedOut
使用 ADManager Plus 查找被锁定的 AD 账户:
以下是一些管理被锁定账户的变体和实用脚本。
如果需要使用 PowerShell 检查 AD 账户是否被锁定,也可以使用 Get-ADUser cmdlet 并查看其 LockedOut 属性。
Get-ADUser -Identity "John" -Properties LockedOut | Select-Object Name, LockedOut
若要将搜索范围缩小到特定 OU,可以结合使用 Search-ADAccount 和 -SearchBase 参数。
Search-ADAccount- LockedOut -SearchBase $targetOU | Select-Object name, sAMAccountName
导出被锁定用户列表到 CSV 文件是常见需求。
# Find all locked-out accounts
Search-ADAccount -LockedOut | `
# Retrieve additional properties for each locked account
Get-ADUser -Properties AccountLockoutTime, BadLogonCount, Department, EmailAddress | `
# Select the specific properties for the report
Select-Object Name, SamAccountName, EmailAddress, Department, AccountLockoutTime, BadLogonCount | `
# Export the results to a uniquely named CSV file
Export-Csv -Path "C:\Reports\LockedOutUsers_$(Get-Date -Format 'yyyyMMdd_HHmm').csv" -NoTypeInformation
要识别过去 24 小时内被锁定的账户:
Import-Module ActiveDirectory
$Yesterday = (Get-Date).AddDays(-1)
Search-ADAccount -LockedOut | Get-ADUser -Properties AccountLockoutTime |
Where-Object {$_.AccountLockoutTime -ge $Yesterday} |
Select-Object Name, SamAccountName, AccountLockoutTime
解决方案: 此错误表示未加载 Active Directory 模块。请安装远程服务器管理工具 (RSAT),并在执行脚本前运行 Import-Module ActiveDirectory。
解决方案: 账户锁定可能已过期,或者您可能查询了错误的域控制器 (DC)。尝试使用 -Server 参数指定特定 DC。
虽然 PowerShell 提供了强大的查找锁定账户功能,但在常规报告和管理任务中存在若干限制。
ADManager Plus 是一款全面的 AD 报告 解决方案,解决了 PowerShell 的限制并提供额外功能。
Search-ADAccount 专为账户状态查询设计,更高效地查找锁定账户。Get-ADUser 也可通过筛选检查锁定状态,但针对该任务推荐使用 Search-ADAccount。
这通常是因为账户锁定已根据域的锁定持续时间策略过期。您可能需要检查 AccountLockoutTime 属性以了解账户上次被锁定的时间。
可以,您可以使用 Unlock-ADAccount cmdlet 在 PowerShell 中解锁账户。但 ADManager Plus 让您无需脚本,仅需几次点击即可解锁用户账户。