使WTSQuerySessionInformation和/或%CLIENTNAME%在loginskript工作?

对于loginWindows 2008 R2远程桌面服务器的用户,我需要知道客户端PC的名称。 正如我所了解到的那样, WTSQuerySessionInformation()在loginskripts执行过程中似乎无法正常工作。 例如,我已经看到它从前一天返回用户login的名称。 值得注意的是,函数本身从来没有失败(如:返回false),它只是“撒谎”。 快速交叉检查发现环境variables%CLIENTNAME%在执行login skript时没有设置(虽然我只在其中进行了testing,但是没有发现错误 )。

我发现有关注销过程中的问题的信息,导致(冗长的)注销可能发生在会话closures已处理。 但是我理解它的方式,会话是在login过程开始之前build立的,所以会话信息还不可用。 显然我错了,所以我的问题是:

问:如何在login时查看客户端PC的名称(或至less是IP)?

或者: 问:一旦SessionInformation被设置为正确的值,我如何在用户上下文中执行一个程序?

(另一个问题的答案甚至可能更有趣,因为它也可以处理用户从另一个客户端“窃取”他的活动会话的情况)