直接在机器上启动进程和从远程桌面连接启动进程之间的区别

Posted

技术标签:

【中文标题】直接在机器上启动进程和从远程桌面连接启动进程之间的区别【英文标题】:Difference between starting the process directly on machine and from remote desktop connection 【发布时间】:2016-05-04 10:16:09 【问题描述】:

我想知道直接在机器上启动的应用程序和使用远程桌面连接启动的应用程序之间的区别。

这两个应用程序是相同的还是具有不同的权限。

例如,我有一个基于 opengl 的应用程序,当直接在机器上启动时,它采用更高版本的 opengl 3 或 4。但是当我从远程桌面连接启动同一个应用程序时,它只需要基本的 opengl 版本 1.1。

还有一个观察结果是: 我们有一个服务应用程序,它将根据请求启动图形(基于 OGRE)应用程序。使用 web-socket 通信从客户端设置请求。

当我们直接在服务器中启动此服务时,它工作正常。但是从 RDP 连接启动此服务时,当用户在 RDP 连接关闭后发送请求时,图形应用程序会崩溃。

如果我保持 RDP 连接打开,它就可以工作。

【问题讨论】:

【参考方案1】:

当您通过 RDP 登录时,它可能会丢失图形驱动程序。 如果您在启用 RDP 时查看启动 Ogre 的“设置”对话框,它不会列出显卡 - 但会列出不同的“RDP 驱动程序”。

另外 - 当您登录\注销时,它可能会“重置”设备(因为 RDP 图形驱动程序已启用\禁用)导致您的窗口松动设备,然后崩溃。

解决所有这些问题的一种方法是使用 VNC(例如,tightvnc),这不会导致标准 RDP 出现的问题,因为它不使用 RDP 图形驱动程序等。

【讨论】:

另一种方法是使用技巧social.technet.microsoft.com/Forums/windowsserver/en-US/…。批处理文件断开当前 RDP 会话并启动应用程序。如果应用程序是从本地会话启动的,则它具有硬件加速功能。应用程序启动后,您可以重新连接到 RDP。应用程序应继续使用 GPU。

以上是关于直接在机器上启动进程和从远程桌面连接启动进程之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

远程桌面无法复制粘贴的解决方法

如何使用 perl 和 Net::OpenSSH 在远程机器上启动后台进程?

如何使用 C# 在远程机器上启动/停止进程?

在远程机器上启动应用程序并保持运行,powershell 脚本不应等待进程完成

远程调试,附加到尚未启动的进程

win10远程桌面断开后,所有的进程都会自动关闭,怎么设置让程序一直运行下去