在“重新连接会话”上运行程序

在“重新连接会话”上运行程序

我刚刚在我们的服务器上实现了 BackInfo,通过 GPO 部署。用户和管理员登录和注销时,一切都按预期运行。

当用户断开并重新连接 RDP 会话时,就会出现问题。我不知道是 BackInfo 在重新连接时被放到了实际壁纸的后面,还是壁纸以某种方式只保留在该活动会话中。

由于没有登录会话,下面的内容HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run不会被执行,所以 BackInfo.exe 不会在重新连接时运行。

在谷歌上搜索这个主题简直是地狱,因为我包含了搜索词“重新连接”,所以我几乎只找到驱动器映射策略。 不过,我偶然发现了 VMware 通过 VDM_Agent 提供的解决方案“遗憾的是”,我们使用 Hyper-V,因此该解决方案并不针对我们。

一个可能的解决方案是在一小段时间内使 RDP 会话过期,但我希望我的用户能够断开连接,因为这是他们长期以来一直喜欢的功能。

也许有人遇到过同样的情况,必须在 RDP 会话重新连接时运行程序。

答案1

是的……我也遇到过同样的情况。我最终编写了一个 Windows 服务,使用 wtsapi32.dll 中公开的 API 检查断开连接的会话,然后对于每个断开连接的会话,如果我想要的进程未在该会话中运行,我将使用该人的令牌(我可以窃取该令牌而无需知道该人的密码,这就是为什么从安全角度来看断开连接的会话是不可取的)以该用户的身份在其桌面上使用 CreateProcessAsUser 启动进程。这样,当用户重新连接到其断开连接的会话时,所需的程序将在他们重新连接时在用户的桌面上运行。

相关内容