我创建了一个Windows服务,用于跟踪用户通过负载均衡器实际连接的App Server。
它检索登录到该计算机上的窗口的用户,然后交叉引用Active Directory(AD)帐户以返回名字,姓氏和电子邮件(用于通过为该项目创建的网站进行通知)< / p>
网络上有一个系统,用户只能远程进入系统Vista系统,由于某种原因,它返回的值是“LOCAL SERVICE”登录到该机器,这很奇怪,安全人员说“LOCAL SERVICE”帐户无法登录Windows。
以下是我如何获取登录Windows的用户
ManagementScope ms = new ManagementScope("\\\\.\\root\\cimv2");
ObjectQuery query = new ObjectQuery("select * from win32_computersystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(ms, query);
foreach (ManagementObject mo in searcher.Get())
{
_username = mo["username"].ToString();
}
// remove the domain part from the username
string[] usernameParts = _username.Split('\\');
_username = usernameParts[usernameParts.Length - 1];
这是我可以修复的边缘案例,还是用户实际“登录”到此机器
是否有多个用户登录此计算机并且Vista将“LOCAL SERVICE”列为其中一个?