Skip to content

远程桌面切换到console session

Published: at 10:52 AM | 4 min read

我用vpn连到公司内网,然后通过mstsc远程桌面连到公司内网机器。我想关掉vpn这样就不能用微软的远程桌面了,所以我先起了一个第三方的远程桌面软件,这样关闭vpn和微软的远程桌面,就可以用第三方的远程桌面在家里连接公司电脑了。

但是,你会遇到一个问题用第三方远程桌面软件连接时会提示对方没有显示。

原因是,在 Windows 中,当用户使用远程桌面连接到另一台计算机时,被连接的计算机会创建一个新的 session 来提供服务。但是,由于默认情况下远程桌面会话会启用一个独立的桌面界面,而不是真正的控制台,因此远程桌面会话的显示输出不会在物理控制台上显示。

如果想要在物理控制台上查看远程桌面的输出,需要将远程桌面会话转换为 console session,这样远程桌面输出的界面就可以显示在控制台上了。通过 tscon 命令将 session 转换为 console session 后,可以在本地屏幕上直接操作远程计算机,显示远程计算机的应用程序等内容。

再次使用微软的远程桌面,在远程机器上操作: 输入 query user 命令,查看当前所有用户的 session ID。 输入 tscon /dest:console 命令,将指定的 session ID 转换为 console session。其中, 是需要转换的 session 的 ID 号,/dest:console 表示将 session 转换为 console session。

这样软件桌面会断开,再使用第三方软件桌面软件去连接就可以了。

那为什么微软的远程桌面不需要转换为console session就可以显示,而其他的远程桌面软件如teamview需要呢?

微软的远程桌面客户端因为是使用 Remote Desktop Protocol (RDP) 协议连接到远程计算机,而 RDP 协议支持直接将远程桌面图像输出到物理屏幕上,所以不需要将远程桌面会话转换为 console session 就可以在物理控制台上显示。

而 TeamViewer 等其他远程桌面软件则不同,它们通常使用类似于虚拟画布的方式将远程桌面图像输出到本地计算机的屏幕上。这意味着远程桌面软件对本地计算机和远程计算机之间的图像传输和显示有一定的限制和要求,无法像 RDP 协议那样直接将图像输出到物理屏幕上。

因此,在使用这些远程桌面软件时,可能需要先通过某些方式将远程桌面会话转换为 console session,以便在物理控制台上显示远程计算机的屏幕内容。