批量查看域用户登录计算机信息

 

在企业中经常有各种针对域帐号信息收集的需求,比如收集帐号在哪台计算机的登录时间;或者收集针对计算机硬件信息收集,对于硬件的收集推荐使用Bginfo来部署,结合AD组策略登录脚本使用,具体方法本文忽略。所以组策略功能很重要,结合脚本能实现很多需求,在这里顺便介绍下PowerShell,它功能更丰富,更强大,也更实用,希望大家可以深入了解并学习,相信未来必是相关IT人员的必备技能。

 

本文将详细介绍如何批量查看AD 用户在哪台计算机上登录和何时登录的,实现方法是通过设置域登录脚本来获取登录信息,再把这个登录信息写入到 AD 计算机的描述字段。

 

注:以下环境为windows server 2012 r2

1、首先开启AD查看的高级功能,在计算机的OU上右键-属性-安全-高级-针对Authenticated Users-编辑-应用于“后代计算机”-写入描述!具体设置详见下图。

 

批量查看域用户登录计算机信息_第1张图片

批量查看域用户登录计算机信息_第2张图片

批量查看域用户登录计算机信息_第3张图片

批量查看域用户登录计算机信息_第4张图片

批量查看域用户登录计算机信息_第5张图片

批量查看域用户登录计算机信息_第6张图片

批量查看域用户登录计算机信息_第7张图片

批量查看域用户登录计算机信息_第8张图片


从以上图片可以看到OU中属性的众多设置,比如想拒绝某个AD用户读取其他OU信息,那么利用安全功能可以实现,只需要在阻止读取的OU右键-属性-安全-添加AD用户-拒绝-读取!

 

2、  设置收集信息的AD组策略登录脚本,脚本内容如下,另存为*.vbs即可:

********************************************************

On Error Resume Next

 

Set objSysInfo =CreateObject("ADSystemInfo")

Set objComputer =GetObject("LDAP://" & objSysInfo.ComputerName)

Set objUser = GetObject("LDAP://"& objSysInfo.UserName)

 

strCompDesc =objUser.CN

 

if strCompDesc <> "" then

  objComputer.Description = strCompDesc & "|" & date& " " & time

  objComputer.SetInfo

end if

 

Set objUser = Nothing

Set objComputer = Nothing

Set objSysInfo = Nothing

 

*********************************************************批量查看域用户登录计算机信息_第9张图片


3、新建GPO,设置用户配置-策略-windows设置-脚本(登录/注销)-登录-添加脚本,并链接此GPO到指定OU,此处设置为全域。步骤详见以下图片。

批量查看域用户登录计算机信息_第10张图片批量查看域用户登录计算机信息_第11张图片批量查看域用户登录计算机信息_第12张图片

 批量查看域用户登录计算机信息_第13张图片



 


4、设置完成后在AD上运行强制刷新组策略的命令,然后在客户端登录测试策略是否生效。


5、使用AD帐号superwin7pc1登录,然后在AD中查看结果。描述中显示了帐号及登录时间信息。

 批量查看域用户登录计算机信息_第14张图片批量查看域用户登录计算机信息_第15张图片批量查看域用户登录计算机信息_第16张图片


至此完成。