查找被锁定的用户

查找被锁定的用户

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

...和这里:http://ss64.com/ps/search-adaccount.html

相关内容