如何以编程方式获取Active Directory中的计算机列表以及每个计算机的最后登录用户?

时间:2018-11-26 21:07:23

标签: c# .net active-directory

我已经进行了大量研究,并且学习了如何为Active Directory中的用户获取上次登录的时间戳,以及如何从Active Directory中获取计算机列表。我似乎无法弄清楚如何将两者结合在一起,以便获得所有计算机的列表(或至少是我提供的组织单位中的计算机)以及最后登录每台计算机的用户的列表。以及发生的时间。我不需要当前登录名,只需最后一次登录。该怎么办?

我更喜欢C#。

1 个答案:

答案 0 :(得分:0)

一个巧妙的技巧是仅查看C:\ Users中文件夹的最后修改的时间戳。最后修改的是最后登录的人。但是请记住,如果管理员登录(甚至是远程登录),他们将显示在顶部,因此您不能只检查一次并假设它是该人的计算机。但是,如果您检查10次和9/10次是一个人,那么您可以得出结论,这是那个人的计算机。

然后,您可以将配置文件文件夹与该计算机上的注册表中的帐户的SID匹配:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

是的,您还可以查看域控制器上的日志以查看人们从何处登录,但请记住,每次有人进行身份验证时,都将视为登录:如果有人对Intranet站点进行了身份验证,我很确定它将显示为来自Web服务器的登录名。与访问文件共享相同。