AD 查询查看用户最近登录过哪些电脑

AD 查询查看用户最近登录过哪些电脑

有没有办法在 AD 中运行查询来检查用户最近登录了哪些电脑。

问候 Mike

答案1

据我所知,AD 不会记录用户登录的 PC,它只记录上次登录时间。此项也不会在域控制器之间同步,因此如果您有多个 DC,则可能会有点不可靠,除非您轮询所有 DC 以查找最新时间。

您可以启用安全日志中的用户登录事件记录,将日志导出为 CSV 并使用它来生成所需的报告。这也受到登录信息仅由处理请求的 DC 记录,并且不会在 DC 之间同步这一事实的影响,因此您需要从所有 DC 获取此数据。

登入如果这对您有用的话,脚本会告诉您用户当前登录了哪些机器。

答案2

不知道是否有任何方法可以直接使用 AD 来执行此操作,但如果您有任何类型的机器审计系统,这应该相当容易。

我们使用 SCCM(又名 SMS)进行软件部署以及各种审计,并使用此脚本快速查看人们登录的位置。完整的资产清单服务为您提供的信息比这多得多,但这既快速又简单。它不是 100% 可靠的(特别是如果用户在短时间内登录了多台机器),但我们使用此脚本应该可以完成您想要的操作:

'Central Site Server
strComputer = "***"
'Central Site Code
strSiteCode = "***"

'Get userID
strUserName = InputBox ("Enter User Name")

'Set up the connection String
Set objWMIService = GetObject("winmgmts://" & strComputer & "\root\sms\site_" & strSiteCode)
'Get info
Set colUser = objWMIService.ExecQuery("select SMS_G_System_COMPUTER_SYSTEM.Name, SMS_R_System.LastLogonUserName from  SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_R_System.LastLogonUserName like '" & strUserName & "%'")
For Each objUser in colUser

LastUserName = ObjUser.SMS_R_System.LastLogonUserName
MachineName = ObjUser.SMS_G_System_COMPUTER_SYSTEM.Name

Next 

'Display info
MsgBox ("Last machine that "& LastUserName &" logged onto was "& vbcrlf & MachineName)

答案3

肯定有办法,我们目前已设置了一个脚本,当用户登录时运行该脚本,它会在 AD 中电话选项卡下的注释中弹出电脑名称和登录时间。我会找到该脚本并将其发布出来……

问候

相关内容