域内管理很多用户和计算机,但是常常有无用的用户和计算机没有退出域,而浪费域内的资源。如何删除一段时间内没有登录域非活动计算机账号呢?下文给出了详细的描述。
命令:dsquery
http://technet.microsoft.com/en-us/library/cc755655.aspx
工具:oldcmp
使用OldCmp,你可以搜索、禁用或者删除非活动计算机账号。甚至更好的是,你可以创建一个简单的批处理文件来使这个过程自动化。
当你用OldCmp来执行一个搜索的时候,你必须指定以下三种可能选项中的至少一种:
-report(生成一张列有非活动计算机账号的HTML报告列表)
-disable(禁用非活动计算机账号)
-delete(删除非活动计算机账号)
如果你运行OldCmp时只加了-report选项,它会搜索你默认域中所有计算机密码老化日期大于90天的计算机对象,并且把结果生成为一个HTML报告。如果你的域非常大,并且里面有很多计算机账号,这条命令可能得花上一段时间来执行完毕。为了减少OldCmp的运行时间,你可以使用-b选项来指定一个特定的组织单元。
OldCmp生成的HTML文件会被放到该工具的运行目录下,除非你用-file选项指定了一个替换位置。如果你包括了-sh选项,OldCmp会在生成HTML文件后自动打开它。
如果你想定期地生成HTML报告,你所需要做地全部就是创建一个只包含两行代码的批处理(.bat)文件,如表1所示。其中***行运行OldCmp,而第二行运行Blat。Blat是一个把文件内容通过电子邮件发送出去的工具,你可以从http://blat.net下载该工具。在第二行中,注意用-to选项设置你自己的电子邮件地址。另外,确认OldCmp和Blat都被放到了你的运行路径下(即在PATH环境变量中定义的路径)。
建立了批处理文件之后,你需要创建一个计划任务。确认你为其指定了一个合适的域账号和密码,使该脚本有足够的权限在域中查询计算机对象。
辨别非活动计算机账号很有帮助,但更可能的是,你有时候想清除那些账号。我的一般建议是先禁用那些非活动账号,然后经过一个星期或一个月的观察,再删除那些禁用了的账号。这样能保证确实没有人在使用我们删掉的那些账号。
表2包含的批处理文件是用来删除禁用的计算机账号,以及禁用新发现的非活动计算机账号的。这个批处理文件有两段命令(注意不要交换次序)。***段用OldCmp删除禁用了的计算机账号,并且创建deleted_comps.html报告,接着用Blat把该报告发送到XXX@XXX.com。第二段用OldCmp禁用所有计算机密码旧于180天的计算机账号,并且创建disabled_comps.html报告,接着用Blat发送该报告。
在写OldCmp的时候,Joe考虑到人们可能会意外地删除或禁用数以千计的计算机账号,所以他加了一些预防措施,包括你所见到的在每个命令集中都有的-safety和-forreal选项。-safety选项用来限制脚本所能删除或者禁用的账号数量。默认情况下,OldCmp不会删除或禁用超过10个账号。若把-safety选项值设为100,则OldCmp最多可以删除100个账号。-forreal选项用来真正删除或者禁用账号。如果不用-forreal选项,OldCmp只会报告它要删除或禁用的账号,而不会真正地删除或者禁用它们。
在使用表2中的批处理文件之前,你需要自定义在两行Blat命令中的电子邮件地址。此外切记,为了测试,你应该先去掉两行OldCmp命令中的-forreal选项,然后运行批处理文件来确定OldCmp将要删除或者禁用的账号无误。
表1:建立非活动计算机账号报告的批处理文件
oldcmp-report-filec:\inactive.html
blatc:\inactive.html-toXXX@XXX.com-html
表2:删除被禁用的计算机账号和禁用新发现的非活动计算机账号的批处理文件
oldcmp-delete-onlydisabled-safety100-forreal-append-filec:\deleted_comps.html
blatc:\deleted_comps.html-toXXX@XXX.com-html
oldcmp-disable-age180-safety100-forreal-append-filec:\disabled_comps.html
blatc:\disabled_comps.html-toXXX@XXX.com-html
希望本文介绍的删除域内非活动计算机账号的方法能够对读者有所帮助。
【编辑推荐】