如果我们的域是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来删除域中多余的计算机帐号。