使用 Powershell 创建虚拟 RDP 会话

使用 Powershell 创建虚拟 RDP 会话

在 Windows 10 上,我想通过远程桌面运行 OpenGL 应用程序。此限制是 Nvidia GeForce 卡所特有的,解决方法是使用 BAT 脚本在启动应用程序之前将会话传输到控制台,如下所示:

tscon 1 /dest:console
start “myapp.exe”

这将断开 RDP 会话,然后用户必须重新连接。我正在尝试想出一种方法来做到这一点,同时让用户保持连接。我认为它可以像这样工作:

  • 创建“虚拟” RDP 会话 #2
  • 将会话 2 连接到当前会话 1
  • 将会话 1 连接到控制台(会话 0)
  • 在控制台中启动应用程序
  • 将控制台连接到会话 2
  • 终止会话 1

这可能吗?我找不到任何用于创建虚拟会话的命令。

答案1

在 Windows 10/Server 2016 中,你实际上可以通过 RDP 使用 DX11/OpenGL3+本地组策略更改:

  • 从控制面板打开编辑组策略工具或使用 Windows 搜索对话框(Windows 键 + R,然后输入 gpedit.msc)
  • 浏览到:本地计算机策略\计算机配置\管理模板\Windows 组件\远程桌面服务\远程桌面会话主机\远程会话环境
  • 然后启用“对所有远程桌面服务会话使用硬件图形适配器”

其中还有一些其他 GP 设置,可用于播放编解码器等。

如果这对您不起作用,我会警告您 Windows 10 默认只允许 1 个 RDP 会话,并且我认为您不能以同一个用户身份运行两个会话。

答案2

看看安装 pstools PsExec,它将允许您在任何可用会话中以交互方式启动应用程序。

您必须指定用户(和密码),否则它只会显示一个黑色窗口,但 PsExec 也可以选择以系统身份运行应用程序,这样不需要密码并且显示正确。但在这样做之前,请先了解以系统身份运行交互式应用程序的缺点,因为它可能是一个巨大的安全漏洞。

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

相关内容