AD查询来查看用户最近login了哪些PC

有没有办法在AD中运行查询来检查用户最近login了哪些PC。

迈克

据我所知,AD不logging用户login的PC的日志,唯一logging的是最后一次login时间。 此项不跨域控制器同步,如果您有多个DC,可能有点不可靠,除非您轮询所有DC以查找最新的时间。

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

PsLoggedOn脚本会告诉你用户当前login了哪些机器,如果这对你有任何用处的话。

没有任何方式直接与AD做这件事,但如果你有任何一种机器审计系统,这应该是相当容易的。

我们使用SCCM(也称为SMS)进行软件部署以及各种审计,并使用此脚本快速查看用户login的位置。完整的资产清单服务为您提供了比此更多的信息,但这很快简单。 这不是100%可靠(特别是如果用户在短时间内login到多台机器),但我们使用这个脚本应该做你想要的:

'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) 

那肯定是一种方式,我们目前已经设置了一个用户login时运行的脚本,它会在AD的电话标签下的笔记中popup电脑名称和login时间..我会find脚本并将其发布向上….

问候