监视Active Directory中login的用户

域中有一堆Windows Server 2008 R2计算机。 它们被用作本地和远程访问的工作站。 什么是正确的方式来收集有关login用户的信息? 包含:

  • 谁在本地login(根据远程桌面服务pipe理器,会话=控制台)
  • 谁在本地login,但桌面被locking(状态!= RDSM活动)
  • 谁是远程login的
  • 谁远程login,但桌面被locking
  • login时间(如果可能的话)

我想用这些信息编译一个HTML页面,所以编写一个脚本来完成这个工作非常好。

不适合我的解决scheme:

例如, PsLoggedOn实用程序(SysInternals)不提供关于状态(活动/断开连接)的信息。

远程桌面服务pipe理器是一个很棒的GUI工具,尤其是在将所有机器添加到组中时。 我需要通过控制台界面相同的信息。

你可以parsing来自qwinsta的数据。 Qwinsta输出通常看起来像这样:

 PS C:\> qwinsta SESSIONNAME USERNAME ID STATE TYPE DEVICE services 0 Disc console 1 Conn >rdp-tcp#0 administrator 2 Active rdpwd rdp-tcp 65536 Listen 

以下通过“SESSIONNAME”查询RDP连接:

 $sessionInfo = qwinsta | foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv $rdpSessions = $sessionInfo | where {$_.SESSIONNAME -like ">rdp-tcp*"} $rdpSessions 

你会得到类似于下面的输出:

 PS C:\> $rdpSessions SESSIONNAME : >rdp-tcp#0 USERNAME : administrator ID : 2 STATE : Active TYPE : rdpwd DEVICE : 

我没有使用它(因为我没有任何R2terminal服务器),所以我可能是错的,但在PowerShell中的RDS提供程序应该给你你需要的一切。 如果你有兴趣,请看看这个 。

PDQ库存是一个(免费)工具,可以让您深入了解networking中的所有在线计算机。 也可以导出到Excel。

 Name Online Scan Status O/SO/S Version O/S Service Pack Uptime Current User Successful Scan Date PC005 Yes 8.1 6.3.9600 0 22 minutes BUGGEGRP\USER01 (locked) 26/04/2016 12:34