计数login到服务器的Windows用户

有没有办法以编程方式收集在过去30天或两个date之间login到Windows服务器(特别是2008 R2)的用户列表? 有两个活动目录服务器,所有用户都是同一个域的成员。

我的最终目标是根据SPLA原因自动获取每个服务器的唯一用户列表。

这是手动的,而不是通过程序,但是你可以在事件查看器中进行过滤,只显示你的login事件。 右键单击Custom Views文件夹,然后selectCreate Custom View选项。 不幸的是,对于这个filter,你必须编辑XML。 以下是filter的XML代码:

 <QueryList> <Query Id="0" Path="Security"> <Select Path="Security"> *[System[(EventID=4624)]] and *[EventData[Data[@Name='LogonType'] and (Data='2' or Data='10' or Data='11')]] </Select> <Suppress Path="Security"> *[EventData[Data[@Name='TargetDomainName'] and (Data = 'Window Manager')]] </Suppress> </Query> </QueryList> 

您可能想要编辑这个以包括logintypes7(解锁locking的会话)。 有关logintypes代码的更多信息,请访问:

http://www.windowsecurity.com/articles-tutorials/misc_network_security/Logon-Types.html

请注意,这不会按date范围过滤:仅限login。 但是,一旦缩小了这部分,就很容易手动在事件查看器中浏览date范围。

不幸的是,当我使用“连接到另一台计算机”选项时,即使在防火墙closures的情况下,该filter也不适用于我。

有没有简单的方法。 梳理安全日志是首先想到的事情。 您正在寻找事件ID 4624.请注意logintypes(2,10,11,如果您的目的是计数交互式login)。

根据生成的安全日志条目的速度和日志的大小,日志可能会在30天周期之前被覆盖。

最好是强制一个login脚本来统计数据到一个中心位置。