微软有个 RemoteApp 可以让远程桌面(RDP)上的应用以窗口方式显示,类似虚拟机的融合(Coinstance,这是 Parallels 的叫法,VMWare 叫 Unity)模式,在网速不错的时候运行效果非常棒。然而目前除了 Modern IE 提供的 IE 虚拟机外我没有发现什么地方提供这类服务。经过一番搜索,发现其实任何一台 Windows 电脑(或者虚拟机)都可以实现这一功能。
本方法在客户端 Windows 8.1 和 OS X 10.10 ,服务器 Windows Server 2012 R2 上测试通过。
首先请确认能用 RDP 方式连接到该电脑。
- Windows 用户可以使用自带的远程桌面客户端(mstsc.exe)
- OS X 用户需要下载 Microsoft Remote Desktop 应用(中国区暂不可用,请访问其他国家应用商店)。
- 暂不支持 iOS
- 暂不支持 Android(会显示错误代码 0x24,错误原因显示为无法连接)
第一步 启用功能
打开注册表编辑器,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList ,把 fDisabledAllowList 的值改成 1 。
第二步 选择允许允许的应用程序
在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList下新建一项(名称任意,这不重要),在其中建立两个字符串值分别名为 Name 和 Path 。 Name 中填写一个名字(下面需要用到), Path 填写该应用的路径。
第三步 修改配置文件
在能通过 RDP 连接上以后使用远程桌面连接自带的保存配置文件功能保存该连接,然后用文本编辑器打开之。以下四个字段如果冒号前面的部分已经存在则替换之,否则添加到文件末尾。
1 2 3 4 |
remoteapplicationmode:i:1 remoteapplicationprogram:s:这里填写你的 Name 字段 disableremoteappcapscheck:i:1 alternate shell:s:rdpinit.exe |
保存,双击该 .rdp 文件连接即可。输入密码后,你就会看到一个远程运行的应用窗口出现在自己的桌面上。
完整的配置文件示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
screen mode id:i:2 use multimon:i:1 session bpp:i:32 full address:s:example.com:3389 audiomode:i:0 username:s:Administrator disable wallpaper:i:0 disable full window drag:i:0 disable menu anims:i:0 disable themes:i:0 shell working directory:s: authentication level:i:2 connect to console:i:0 gatewayusagemethod:i:0 disable cursor setting:i:0 allow font smoothing:i:1 allow desktop composition:i:1 redirectprinters:i:1 prompt for credentials on client:i:0 bookmarktype:i:3 use redirection server name:i:0 remoteapplicationmode:i:1 remoteapplicationprogram:s:iexplore disableremoteappcapscheck:i:1 alternate shell:s:rdpinit.exe |
PS:尚未发现如何用这种方式运行 Visual Studio 的方法,连接上后会自动断开连接。