如何使用Windows Web服务获取登录用户帐户名?

时间:2014-07-23 11:21:53

标签: windows-services

我们有10台电脑和1台服务器。

我们的网络服务在每台计算机上作为LOCALSYSTEM运行。

Web服务具有写入中央服务器计算机上文件的代码。

该服务具有持续时间为30分钟的计时器。每隔30分钟,不同的用户登录系统。我们希望服务检测当前登录用户的名称并传递给写入记事本的方法。

问题是如何获取用户名?

1 个答案:

答案 0 :(得分:0)

您可以在Windows上使用Remote Desktop Services API提取有关当前用户会话的所有信息。有一种简单的方法可以使用WTSEnumerateSessions枚举所有会话,但是系统服务的更好方法是订阅有关会话更改的通知,并在服务“HandleEx过程中接收SERVICE_CONTROL_SESSIONCHANGE事件。” p>

无论哪种方式(直接枚举会话或会话事件),您都将获得可用于调用WTSQuerySessionInformation的会话ID,并将WTSUserName作为第三个参数传递给该函数。这将在缓冲区中返回所需的用户名。