![查找被锁定的用户](https://linux22.com/image/538239/%E6%9F%A5%E6%89%BE%E8%A2%AB%E9%94%81%E5%AE%9A%E7%9A%84%E7%94%A8%E6%88%B7.png)
Active Directory 最高可达 2008 网络(我们的服务器混合使用了 2008、2003...)
我正在寻找一种快速查询 AD 的方法来找出被锁定的用户,最好是从批处理或脚本文件中查找,以监控用户帐户是否受到自动攻击或网络异常的可能问题。
我用 Google 搜索过,但失败了;我在微软自己的知识库中找到了一条查询,其中引用了一个字符串,可以在 Server 2003 上使用管理单元保存的查询(http://support.microsoft.com/kb/555131),但当我输入该信息时,查询返回了 400 个用户,经抽查发现这些用户在“帐户”下的“帐户已锁定”框中没有勾选。事实上,我没有发现他们的帐户存在任何问题。
有没有一个简单的实用程序(wisesoft bulkadusers 显然在幕后使用了这种方法,因为它的结果也是错误的)可以给出用户数量以及可能的用户对象名称?脚本?什么的?
答案1
您可以使用 PowerShell 和任务工具。
您可以像这样查询所有 AD 用户对象:
Get-QADUser -SizeLimit 0 | Where {$_.AccountIsLockedOut -eq "true"}
如果采用这种方式,您可以创建计划运行的 ps1 文件,然后可以使用将其导出到 csv 或甚至网站 - 然后ConvertTo-Html
将其导出到 html 文件。例如:
Get-QADUser -SizeLimit 0 | Where {$_.AccountIsLockedOut -eq "true"} | Export-Csv c:\lockedoutusers.csv
或 html:
Get-QADUser -SizeLimit 0 | Where {$_.AccountIsLockedOut -eq "true"} | CovertTo-Html > c:\lockedoutusers.html
或者如果您愿意,您可以将其放在 gridview 上以获得交互式视图:
Get-QADUser -SizeLimit 0 | Where {$_.AccountIsLockedOut -eq "true"} | Out-GridView
答案2
从 PowerShell v2 开始,如果您在 2008 域中,您也可以使用 Active Directory 模块在没有第三方工具的情况下执行此操作:
get-aduser -filter * -properties * | where {$_.lockedout} | ft name,lockedout
那么当然您也可以将 Michael B 的出口管道添加到其中。
答案3
我强烈推荐 Joeware 的 Unlock。
http://www.joeware.net/freetools/tools/unlock/index.htm
此命令将显示锁定的帐户:
解锁。*-查看
通过删除 -view 选项,您还可以解锁它们(全部或一次解锁一个用户)。Joe 的工具对我来说非常可靠,而且速度也非常快。
答案4
在 PowerShell 中:search-adaccount -lockedout | ft name, samaccountname
注意:需要安装 PowerShell AD 模块:http://blogs.msdn.com/b/rkramesh/archive/2012/01/17/how-to-add-active-directory-module-in-powershell-in-windows-7.aspx
更多信息请见search-adaccount
此处:http://blogs.technet.com/b/heyscriptingguy/archive/2011/08/31/use-powershell-to-find-locked-out-user-accounts.aspx