我们目前有大约 70 名员工,但在 ActiveDirectory 中有 178 个帐户。以前的管理员从未删除旧帐户,有时甚至没有被禁用。
事实上,我正在考虑手动审查每个帐户以确定是否可以将其删除。有没有更简单的方法可以根据条件删除帐户?例如,删除(或至少以某种方式禁用或标记)上个月左右未登录的用户?
我们目前有大约 70 名员工,但在 ActiveDirectory 中有 178 个帐户。以前的管理员从未删除旧帐户,有时甚至没有被禁用。
事实上,我正在考虑手动审查每个帐户以确定是否可以将其删除。有没有更简单的方法可以根据条件删除帐户?例如,删除(或至少以某种方式禁用或标记)上个月左右未登录的用户?
您可以使用
dsquery
定位非活动用户:dsquery user -inactive 10 -limit 0
应该让所有用户在 10 周或更长时间内处于非活动状态。
从
dsquery user /?
如果要从域中删除列表,可以将输出通过管道传输到 dsrm。请注意,这不会打扰您,因此请谨慎行事。
dsquery user -inactive 10 -limit 0 | dsrm -noprompt
看到这个有点相关的问题: Removing old computer on a domain
如果您只是在调用批处理文件的上下文中运行 dsquery,并且从 dsquery 中选择了多个对象,您将得到“dsmove failed (user) is an unknown parameter”。
我有两个批次(一个用于计算机帐户,一个用于用户帐户),每月从 windows sch 任务运行。他们有以下代码:
对于计算机:
对于用户:
我已将 GPO 应用于那些具有登录提示的“隔离”OU,以通知用户用户帐户或计算机帐户将被删除,如果他们认为这是错误的,请联系帮助台。GPO 还执行一些锁定操作。然后,如果我没有看到任何异常(例如用户在长假或离线,但服务器很重要),我会检查移动的对象以手动删除。
如果您想跳过 OU 移动和查看,可以将“do”dsmove 更改为 dsrm。
请参见此处:Active Directory 脚本:DSMOVE 失败
如果您是 Powershell 的粉丝,我会访问 www.quest.com 并使用他们的 Active Directory 工具套件。他们是免费的。
Active Directory 的 ActiveRoles 命令行管理程序是一组 PowerShell 命令,可用于执行和自动化管理任务,例如发现 AD 环境、更改用户属性、修改组成员身份、配置新用户帐户以及在 Active Directory 中执行多项其他任务.