我们有一个远程支持工具,允许我们连接到NAT防火墙后面的机器。连接后,我们可以选择从列表连接到控制台会话或任何活动的RDP会话。我们无法连接到非活动/取消激活的RDP会话,并且该工具无法创建新的环回/重定向RDP会话。我们想要做的是找到一种通过脚本或小应用程序生成这些RDP会话的方法,以便支持工具可以检测它们并允许我们连接。实现这一目标的动机是能够让多个技术人员同时访问同一个服务器(最多一个活动控制台会话和两个活动RDP会话,所有这些都同时进行,共有三个技术人员)。
如果我们登录到目标服务器的控制台会话然后RDP到环回,我们在支持工具中看到新的RDP会话,然后我们可以选择并连接到该工具。问题是此RDP会话创建取决于控制台会话。它还为控制台会话提供了对RDP会话的访问权限,如果RDP窗口最小化,那么我们的支持工具中该会话的输出/输入将被冻结。我能够使用PS脚本Connect-Mstsc(主要只是mstsc.exe的包装,但支持添加信用)来创建从远程内部网络上的另一个随机服务器到我们想要创建新目标服务器的RDP会话RDP会议上。从自动化的角度来看,这很有效,但我们有上述相同的限制 - 它只有在交互式运行时才有效。如果远程从SYSTEM shell运行此命令,则RDP会话永远不会出现在我们的支持工具中。
有问题的远程支持工具是ScreenConnect,我们的服务器都是Windows,主要是2012 R2,所有AD环境。我认为这个解决方案的核心挑战是以非交互方式创建和激活RDP会话,然后阻止RDP冻结会话输入/输出。