2

是否可以查询域用户当前登录的域计算机的 IP 地址(或机器名称)列表?

“在 Windows 中使用或不使用域的情况下登录用户名”这个问题很接近,只有我想找到相反的答案。

由于我对 Active Directory 的内部知识缺乏了解,我询问了这种可能性。我的直觉是 Active Directory 只知道域用户最后一次身份验证的时间(以及可能的位置),并且不跟踪当前会话或注销。

提供此解决方案的任何语言都是可接受的答案,但首选 .NET 解决方案。更重要的是,我想知道这是否可能。

4

1 回答 1

1

我不相信有一个地方可以获得这些信息。您可以找出用户上次登录的时间以及从 AD 验证的 DC,但问题是当您登录时第一个响应的 DC 是验证的服务器。然后,该 DC 将此信息记录到其事件日志中,该事件日志驻留在每个主机上,而不是在中央系统中。您可以从这些链接中了解更多信息:http: //support.microsoft.com/kb/175062http://www.tartoos.com/HomePage/Rtable/ComputerSchool/Networking/Net41.htm 话虽如此,我想您可以从用户帐户的 lastLogonTimestamp AD 属性中获取最后一次登录,然后从域中的所有 DC 中查询事件日志,以找出对它们进行身份验证的 DC 以及来自哪个系统。但是所有这一切只会告诉最后一个登录系统......不是他们可以登录的所有系统。再次,您可以将这些结果与可以从 DC 事件日志中提取的注销时间进行比较……但实际上这似乎是一个主要的矫枉过正的努力,并且您最好编写一个记录这些事件的登录/注销脚本到您可以用于将来使用的中央报告系统。

这是另一种选择,您可以查询您的 WINS 服务器以轮询它为用户提供的登录信息,这应该返回它认为他们登录的系统,请参阅这篇文章了解如何执行此操作:

http://www.visualbasicscript.com/m_56230/tm.htm

基本上命令是:"NETSH WINS SERVER \\WinsServerName SHOW NAME UserName 03"

如果您使用某种资产/系统管理软件,例如 Desktop Authority、Altiris 等,那么您可能会更幸运地探索桌面代理记录此信息的位置,因为它们通常也会将此信息记录到某些 SQL 表中。

于 2009-04-09T17:13:25.647 回答