在上一篇文章里,我快速整理了一些有关新玩具的信息。文章里也提到这次折腾提供了不少水文章的素材,所以先拿出一个写写。但按理说 RemoteApp 并不是什么新鲜玩意儿,至少在企业中这种功能已经用烂了。而我们选择这种程序运行方式的原因是:一、有一台 24 小时在线的 Windows 主机;二、少在本地跑流氓软件,跑在 AIO 里也省得本地开虚拟机了。所以如果你有条件在家或者办公室里折腾,可以尝试一下这种玩法。
首先还得向不熟悉 RemoteApp 的读者介绍一下基本信息。RemoteApp 作为远程桌面服务的一部分,最初在 Windows Server 2008 中发布。RemoteApp 最大的特色就是在会话过程中只传输指定应用程序的数据,从而减少了远程桌面会话所需的带宽及性能开销。虽然微软说这东西只面向域环境下的 Server 系统进行配置部署,但借助一些第三方软件,普通用户也可在任意 Windows 版本中进行操作。通过创建 RDP 文件或 MSI 软件包,便可在网络上任何经过认证的终端上使用已部署的 RemoteApp 应用程序。这在某些情况下可以大幅降低应用程序分发部署及用户数据迁移的难度。用户可以得到近似本地应用程序的使用体验。总的来说有点大材小用了,但不代表个人用户不能用嘛。
在这篇文章的演示中,我使用两台分别运行着 Windows Server 2022 和 Windows 10 的主机,RemoteApp 被部署在 Server 系统上。两台主机均未加域。非域环境下部署 RemoteApp 有一点点麻烦,所以用第三方工具完成配置。终端这边没什么可说的,只要保证两台机器访问顺畅就可以。首先启用服务器上的远程桌面访问,这个应该是系统装完后的第一步。为了图省事,在演示及实际使用中,都是默认使用管理员账号登陆远程服务器,对于想照猫画虎的各位朋友可以自己考虑一下权限分配的问题。接下来下载 RemoteApp Tool 这个软件,解压后运行,你会看到如下界面:
还请无视窗口中的两个软件。接下来点击左下角的绿色加号,在弹出的对话框中选择需要添加的软件。这里以记事本作为演示。添加之后在窗口中会增加新软件的图标(有的软件可能是默认 RDP 的图标)。
然后是发布 RemoteApp。点击“Create Client Connection…”按钮,在弹出的对话框中进行发布前的配置。可供选择的项目并不多,首先看 Host 选项卡,这里是远程主机地址及端口设置,如果你之前修改了 RDS 端口,记得在这里也改一下。然后选 Options 选项卡,这里的两个复选框分别是让你在导出 RDP 文件后当即打开进行手动修改,以及创建图标文件。其实我们都用不到,手工改 RDP 文件配置我们一会儿再说,这里你看看就好。其他选项卡就没有需要设置的地方,我们直接点击“Create…”输出 RDP 文件。
将生成的 RDP 文件复制到 Windows 10 主机上,双击运行,和远程桌面连接一样会弹出确认对话框,点击“确定”后,一个运行在远程主机上的记事本就打开了。
对于大多数软件来说,默认设置即可满足功能需求。但不意味着没有别的地方可以调整,让我们翻回头去看生成的 RDP 文件,用任一文本编辑器来打开它:
allow desktop composition:i:1 allow font smoothing:i:1 alternate full address:s:test-pc alternate shell:s:rdpinit.exe devicestoredirect:s:* disableremoteappcapscheck:i:1 drivestoredirect:s:* full address:s:test-pc prompt for credentials on client:i:1 promptcredentialonce:i:0 redirectcomports:i:1 redirectdrives:i:1 remoteapplicationmode:i:1 remoteapplicationname:s:记事本 remoteapplicationprogram:s:||记事本 server port:i:12450 span monitors:i:1 use multimon:i:1
如果准备在远程主机上运行 QQ 之类的东西,我们可以增改这几条设置:
redirectdrives:i:0 //对应 MSRDC 中“本地资源”选项卡的配置,值 0 表示启动远程连接时不自动挂载本地驱动器 devicestoredirect:s: //留空表示不重定向任何即插即用设备 drivestoredirect:s: //留空表示不重定向任何本地驱动器 audiocapturemode:i:1 //值 1 表示重定向本地麦克风至远程主机 audiomode:i:0 //表示在本地播放远程主机上的音频 camerastoredirect:s:* //值 * 表示重定向本地任何摄像头至远程主机,如果使用指定的 deviceID,则只有该设备会被重定向
RemoteApp Tool 生成的默认配置是将本地设备和驱动器重定向至远程主机,这样跟在本地安装 QQ 也没什么区别了,所以需要我们自己对远程桌面连接配置进行修改。更详细的配置可以参考微软的官方文档。做到这里,就基本完成了在远程主机上部署 RemoteApp 并使用的全过程。
接下来可能还有一些小问题要解决。比如在 https://bgm.tv/group/topic/364804 中提到的,出现远程输入法的状态指示器。对应的解决办法是用同样的账户直接登录 RDS,然后关掉输入法指示器。当然现在我不确定这招是否有用,因为没法再试验了。
不过查阅了一下微软的文档,其中提到了特定情况下退出 RemoteApp 时会话不会终止的问题。对此,可以启用组策略中“计算机配置——管理模板——Windows 组件——远程桌面服务——远程桌面会话主机——会话时间限制——设置 RemoteApp 会话的注销时间限制”一项,时间设为立即。不过考虑到会话在多台设备间迁移,我没更改这个配置,但如果你遇到问题可以试着调整一下。
经过一番折腾之后,我们的 RemoteApp 服务就可以正式投入使用了。稍微总结一下使用情况和注意事项:
至此关于 RemoteApp 的部署及应用就简单介绍完了,下一篇系列文章的内容我还没想好,到时再说吧。
参考资料:
0 Comments