RemoteApp 实现分析
RemoteApp 实现分析
以下所说步骤都是基于 Windows 10 Education English 版本,不同 Windows 版本的操作可能会有一定差异!
一、原理分析
Remote APP 是 Windows 的 RDP 功能原生支持的。通过配置服务端注册表相关配置项以及客户端 RDP 配置文件则可以实现发布应用发布。
当客户端与服务端建立远程连接时,客户端的remoteapplicationprogram:s
可以传递别名或者绝对路径。
别名
当客户端传递别名时,服务端会去Applications
去匹配别名,匹配失败则拒绝建立连接;匹配成功会根据匹配的项的 Path
项的路径去打开指定文件,打开成功则建立连接,打开失败则拒绝建立连接。
绝对路径
当客户端传递的是绝对路径时,服务端会首先检查Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList
的 fDisabledAllowList
字段,该字段的值有以下两种:
Value | Description |
---|---|
0 | Specifies that the Allow list is checked and enforced. This is the default setting. |
1 | Specifies that the Allow list is not checked and enforced. |
当fDisabledAllowList
值为1时,服务端会直接根据客户端传递的绝对路径尝试打开应用建立连接;
为 0 时,客户端进行远程连接时,服务端将客户端传递的绝对路径与 Applications
目录下的项的Path
匹配,如果匹配成功,则允许进行访问;如果不成功,则禁止访问。
客户端rdpfile --> remoteapplicationprogram | remote server reg --> TSAppAllowList | fDisabledAllowList | 连通结果 |
---|---|---|---|
别名A | 有配置为别名A的启动路径 | 1 | ok |
别名A | 有配置为别名A的启动路径 | 0 | ok |
别名A | 无配置为别名A的启动路径 | 1 | failed |
别名A | 无配置为别名A的启动路径 | 0 | failed |
指定程序绝对路径 | 所有配置项中 包含 客户端rdp file钟指定的启动路径 | 0 | ok |
指定程序绝对路径 | 所有配置项中 包含 客户端rdp file钟指定的启动路径 | 1 | ok |
指定程序绝对路径 | 所有配置项中 不包含 客户端rdp file钟指定的启动路径 | 1 | ok |
指定程序绝对路径 | 所有配置项中 不包含 客户端rdp file钟指定的启动路径 | 0 | failed |
客户端 RDP 配置文件中的 disableremoteappcapscheck
在置为1时,会在建立连接之前检查服务端是否对当前应用进行禁用;当值为 0 时会在建立连接之后再进行检查(一般情况下为 1 时的用户体验要好很多)。
二、原理验证
服务端
1. 开启远程桌面
首先要在 Windows 设置中开启远程桌面服务:Settings -> System -> Remote Desktop -> Enable Remote Desktop
以下版本支持 WIndows 远程桌面:
Windows 版本 | 支持的版本 | 不支持的版本 |
---|---|---|
Windows XP | Professional | Home |
Windows 7 | Ultimate、Enterprise、Education | Professional、Home、Starter |
Windows 8 | Ultimate、Enterprise、Education | Professional、Home、Starter |
Windows 10 | Ultimate、Enterprise、Education、Professional | Home、Starter |
Windows Server | 2008、2012、2016、2019 | 2003 |
2. 添加远程访问权限
首先新建一个用户:Settings -> Accounts -> Family & other users -> Add someone else to this PC
然后为新建的用户添加远程桌面权限:Settings -> System -> Remote Desktop -> User accounts -> Select users that can remotely access this PC
3. 修改注册表
按下 Win + R
键,输入 regedit
进入注册表编辑,找到 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList
,新建项(K)Applications
:
这个Applications
就是我们允许远程访问 App 的白名单。
下面演示添加一个测试应用:
在
Applications
下面新建一个项(K),取名为Test
为该项添加一个 字符串值 ,名字为
Path
,其值为C:\Windows\explorer.exe
(Windows 资源管理器):
Windows 服务端更多配置项可查看官方文档:Search | Microsoft Docs
客户端
新建一个文本,写入以下配置文件:
allow desktop composition:i:1
allow font smoothing:i:1
alternate full address:s:DESKTOP // 指定远程计算机的备用名称或IP地址
alternate shell:s:rdpinit.exe
devicestoredirect:s:* // 确定本地计算机上的哪些设备将被重定向并在远程会话中可用; * 代表重定向所有受支持的设备,包括稍后连接的设备
disableremoteappcapscheck:i:1 // 提前检查远程 APP在服务端是否允许访问
drivestoredirect:s:*
full address:s:10.0.*.* // 指定要连接到的远程计算机的名称或IP地址
prompt for credentials on client:i:1
promptcredentialonce:i:0
redirectcomports:i:1
redirectdrives:i:1
remoteapplicationmode:i:1 // 连接是否作为RemoteApp会话启动
remoteapplicationname:s:Test // 客户端界面中指定RemoteApp的名称
remoteapplicationprogram:s:||Test // RemoteApp的别名或绝对路径(加||代表使用别名)。别名指的是 Applications 下的项名
span monitors:i:1
use multimon:i:1
保存该文本为 TestApp.rdp
,Windows 端可以直接双击打开,如果非 Windows 端需要安装 WIndows 远程桌面客户端。
双击打开,输入允许远程访问的用户名和密码,就可以使用服务端的远程应用了:
更多配置项可查看官方文档:Supported Remote Desktop RDP file settings | Microsoft Docs
RemoteApp 实现分析相关推荐
- RemoteApp Tool(远程控制软件)v6.0.00学习及使用
相关资料:https://www.iplaysoft.com/remoteapp-tool.html src:https://github.com/kimmknight/remoteapptool 转 ...
- 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...
- 2022-2028年中国自动驾驶系统行业现状调研分析报告
[报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国自动驾驶系统行业市场行业相关概述.中国自 ...
- 2022-2028年中国阻尼涂料市场研究及前瞻分析报告
[报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻尼涂料行业市场行业相关概述.中国阻尼涂 ...
- 2021-2028年中国阻燃装饰行业市场需求与投资规划分析报告
[报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻燃装饰行业市场行业相关概述.中国阻燃装 ...
- 2022-2028年全球与中国漂白吸水棉市场研究及前瞻分析报告
[报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国漂白吸水棉行业市场行业相关概述.全 ...
- 2022-2028年全球与中国青苔清洗剂市场研究及前瞻分析报告
[报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国青苔清洗剂行业市场行业相关概述.全 ...
- 2022-2028年全球与中国氢碘化物市场智研瞻分析报告
[报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国氢碘化物行业市场行业相关概述.全球 ...
- 2022-2028年全球与中国人字拖市场研究及前瞻分析报告
[报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国人字拖行业市场行业相关概述.全球与 ...
最新文章
- [译]深入理解JVM
- webapi 异步返回
- 超棒的jQuery密码强度检验插件 - Complexify
- 限定通配符和非限定通配符_为什么我不信任通配符以及为什么我们仍然需要通配符...
- GlassFish 4带来了Java EE 7
- linux md5加密文件,Linux下对字符串进行MD5加密
- Eclipse 构建Maven项目
- mac运行linux命令,iOS:mac.app执行shell命令
- 王坚博士与计算机关系,与王坚副院长面对面:向王坚提问
- Javascript笔记:(实践篇)从jQuery插件技术说起-分析extend方法的源码(发现extend方法里有bug)(下篇)...
- 有家创业公司花重金要请我当CTO?!
- Dapper Sqlpara where in
- JAVASE复习计划
- 网站规划通识:原型图绘制的一些注意事项
- android开发之http协议
- stm32开发遇到的问题及后续
- Ae:摄像机设置与摄像机选项
- 什么是IP封锁, 如何解封?
- 【OpenCV】中的鱼眼相机及其标定
- 从RC低通滤波到卷积的理解