3

在正常情况下,我的一个 VB.NET 应用程序可以检查 ClientName 环境变量以获取用户正在连接的工作站的名称。

因此,当 WorkstationX RDP 进入 ServerA 时:

  • 计算机名=服务器 A
  • 客户端名称=工作站X

这很好用。

如果我右键单击应用程序并选择以管理员身份运行,则未设置 ClientName 变量。

有没有人知道一种轻松获取连接到终端服务器的客户端的工作站名称的方法,即使应用程序是通过“以管理员身份运行”启动的?

4

2 回答 2

3

如果你不想自己处理 P/Invoke 业务,你可以使用Cassia,它为你包装了它:

New Cassia.TerminalServicesManager().CurrentSession.ClientName
于 2009-04-09T02:22:31.697 回答
2

终端服务 API可能是您的答案。我在 VB.NET 应用程序中使用它来注销给定服务器上的用户会话,并检索连接到这些会话的工作站的名称。我拥有的代码有很多 p-invoke 的东西,而且相当笨拙,但如果你愿意,我可以发布它。

于 2008-11-14T04:15:01.027 回答