引子:
对我们广大网络管理员来说,用户帐号和计算机帐号的管理是我们最长见也是最难管理一项工作。我们知道频繁的系统重装和加入域的过程会导致产生大量无效计算机帐号,如何清理这些无效计算机帐号就成为了一个难题。
 
Q:
如何查找并删除域中多余的计算机帐号?
 
A:
如果我们的域是Windows 2003域,我们可以通过dsquery命令的inactive参数排查出一段时间没有活动的计算机。

附件中包含两个cmd的文件,内容分别如下:
 
DisableComputer.CMD
dsquery computer -inactive 10 -stalepwd 70 |dsmod computer -disabled yes
 
查处10周未登陆的机器以及70天未能更改域计算机密码的机器(数值可自行指定),然后把它们设成disabled。
 
备注:-inactive指得是机器未logon的时间,-stalepwd是机器密码未改的时间,windows 2000以上的机器默认为30天,我们可以两者结合来看看哪些是非active的机器。如果要用-inactive参数,需要2003纯模式。如果单单使用-stalepwd,可以在混合模式下运行。
 
dsquery对于不活动时间越长的计算机越正确。造成这一现象的原因是Active Directory是根据计算机是否验证身份来判断其是否活动的。一台1个月没有开机的计算机当然是不活动的,但是一台开机但是一个月无人操作的计算机也会被判断为不活动的,而第二种情况在服务器上是比较常见的(比如文件共享服务器)。所以我们不能根据dsquery结果立刻删除计算机帐号,还需要做一些验证工作(比如查询这一计算机名的IP)。
 
DeleteComputer.CMD
dsquery computer -disabled | dsrm –noprompt
 
查出禁用机器然后删掉。
备注:建议在使用DisableComputer.CMD两周之后,没有用户报错的情况下再使用DeleteComputer.CMD来删除域中多余的计算机帐号。
 
了解dsquery的更多信息,请参考下面这篇文章: