2008R2 mstsc RDP 通过系统服务登录

2008R2 mstsc RDP 通过系统服务登录

我有一个 Windows 服务,它监视本地 RDP 服务器并确保某些本地用户的会话已登录并处于活动状态。

它通过等待 WTSWaitSystemEvent 并在事件发生时检查 RDP 会话列表,并生成一个 .rdp 文件(然后由 mstsc ( mstsc [tmprdpfile].rdp) 启动)来实现此目的。

该服务以 SYSTEM 身份运行。

这在 Server 2003 R2 上完美运行,在 2008 R2 上似乎也几乎可以运行 (:))。.rdp 文件生成正确 - 手动运行时它们无需密码提示即可登录 - 并且mstsc启动正确,但会话从未连接。这导致启动的进程数量不断增加mstsc

是否有可能:

  1. 检查正在运行的mstsc实例以查看其正在做什么?我怀疑是密码提示或服务器身份验证警告(尽管authentication level:i:0已设置)。
  2. 如何获得在系统服务下运行的 GUI 应用程序的屏幕打印(我知道,这首先是一种奇怪的情况)?

(如果有人有更好的方法来满足我的要求(多个用户会话必须保持登录状态并且活跃自动)我对此也持开放态度。

答案1

我最终选择的解决方案是以本地用户身份运行该服务。

这意味着我可以登录到该用户的桌面并手动运行mstsc,果然出现“你确定吗”的提示。

一旦我勾选了“不再询问我是否连接到这台计算机”框,在这个用户帐户下运行我的服务就可以正常工作

也可能可以将正确的条目添加到 SYSTEM 中HKCU\Software\Microsoft\Terminal Server\Client\LocalDevices\以避免创建新帐户,但对我来说,非特权帐户总体上似乎更好。

相关内容