背景
由于用户加域时需要制定计算机名,为了规范起见,计算机名与AD账号有严格的对应关系。对于一些公共账号来说,就会有很多计算机名。现在需要根据该计算机名的登录时间来筛选出一些废弃计算机名,然后做删除处理,以释放计算机名。
思路
在AD管理工具(Active Directory 用户与计算机)中是可以查询计算机名的,并且在计算机的属性中可以查看创建时间和修改时间的。
那么用命令应该就可以批量获取了。AD获取信息的命令为dsget
,通过\h
获取帮助。
1 | dsget \h |
这里我们需要获取计算机名的信息:
1 | dsget computer /? |
可以看到,能显示的计算机信息如下:
1 | -dn 显示计算机 DN。 |
那么修改日期的信息就只能通过AD工具来查看了。
再看下dsquery
命令会不会有戏:
1 | dsquery /? |
虽然没有直接我们想要的,但是其中一个例子却很有启发:
1 | 查找过去四个星期内处于非活动状态的计算机并将其从目录中删除: |
没办法通过命令来回去修改时间,却可以直接根据非活动状态的时间选出计算机名。
那么我们最终想要的效果——获取长时间未活动的计算机名,就可以直接得到了,而不需要另行计算了。
结论
根据上面的思路,可以使用dsquery
命令
-name test*
来筛选包含test
所有计算机名-inactive 24
来筛选过去24周,也就是半年非活动的计算机名
完整命令如下:
1 | dsquery computer -name TEST* -inactive 24 |