在Windows域中,给定用户名,如何获取用户当前login的机器列表(通过RDP)?
你没有。
至less如果您没有正确定义“login”(RDP?本地控制台?文件共享?打印机?网站?数据库?),则不会。
即使如此,这也是一个相当困难的任务,因为没有这个信息的中央存储库。 您必须扫描每台计算机上的活动会话或查询所有域控制器上的安全日志。
有第三方的审计工具可以跟踪这一点,但在AD中没有简单的内置方法来执行此操作。
我们通过login/注销脚本来实现这种“简单”的方式,无论是将计算机名称,用户名和时间写入SQL数据库,还是每个人都可以修改的“隐藏”AUDIT $共享上的文件,或者将描述更改为用户名用于在WinXP资源pipe理器的视图中看起来不错)。
现在,使用组策略首选项(即,添加用户首选项来replaceHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\srvcomment为值为%USERNAME%的REG_EXPAND_SZ 可能会更容易。 它只适用于最后login的用户,而且可能只是多用户(例如远程桌面,快速用户切换)设置的一部分。
当然,如果您正在寻找一种全面的外部Get-EventLog方法,则必须检查每台计算机上的事件日志 – 可能使用Powershell的Get-EventLog cmdlet。 有一个相当不错的博客post,你需要在http://blogs.msdn.com/b/ericfitz/archive/2008/08/20/tracking-user-logon-activity-using-logon- events.aspx 。
正如其他人所指出的那样,没有哪个中心数据库logging谁在哪等等。但是,如果您只关心某个机器子集,或者您至less可以枚举它们,那么您可以使用PowerShell来查询它们看谁连接。