如何及时确定最近的Active Directorylogin时间?

我有一个安全要求,在我的应用程序login一个用户之后,它应该显示用户最近一次以前login的date和时间。 活动目录复制的“lastLogonTimeStamp”的价值是远不及所需,所以我写了一些代码从http://bit.ly/nf3wbM启发,其中我search域中的每个域控制器中的用户,抓住“lastLogon”价值并保留最大值。 这个值似乎是准确的。

坏消息是我的代码find了100多个域控制器,用了13分钟时间查找所有用户。 我已经login到我自己的帐户,并从debugging我的代码我已经注意到,我以前login到这些域控制器只有55。 为了使事情更有趣,这些域控制器中只有7个显示从今天开始的login时间,这7个域控制器上的“logonCount”大于1000,而其他的则是个位数。 如果我改变我的代码,只在这7个域控制器上查找我的账户,我可以在7秒内确定我最近的login时间,这是一个可以接受的性能。

我对社区的问题是使这7个域控制器是特殊的,我应该如何去让我的代码只查看login统计信息?

谢谢,欧根

您是否正在追踪Windowslogin,或只是login到您的应用程序?

跟踪Windowslogin在2008年变得更容易,如果这就是你想要的:

启用对上次login时间戳数据的全局跟踪; 请在适用于您的DC的组策略中进行设置(不要将其应用于工作站而不必知道警告;此策略将阻止系统从networking断开连接):

计算机configuration>策略>pipe理模板> Windows组件> Windowslogin选项>在用户login过程中显示有关以前login的信息

然后, msDS-LastSuccessfulInteractiveLogonTime属性将在域中复制一致的数据。

如果您只想跟踪应用程序login,请考虑跟踪架构属性中的数据,您可以在成功login时自己写入数据。