移动设备管理 (MDM) 是一种帮助企业环境部署和配置应用程序的有效方法。本文将向说明如何通过MDM工具配置AnyDesk。虽然AnyDesk提供的软件包允许通过第三方部署工具进行部署,但由于部署工具种类繁多,AnyDesk支持团队无法对此进行进一步支持。
一、部署
AnyDesk提供各种各样的软件包,帮助使用第三方部署工具进行部署。我们为Windows提供MSI包(仅定制客户端),为macOS提供PKG(仅定制客户端),为安卓提供Google Play商店链接,为iOS提供App Store链接。
在MacOS上,通过移动设备管理工具配置AnyDesk客户端需要修改和上传XML文件。该XML为.MOBILECONFIG格式,由几个XML组组成。
在Android上,根据Google Play商店找到的标准版AnyDesk应用程序,具有应用程序限制功能的移动设备管理工具可以部署一个修改版。请注意,通过MDM配置自定义AnyDesk客户端目前无法做到。
在iOS上,从AnyDesk 5.5.0 for iOS开始,管理员现在可以使用移动设备管理解决方案配置App Store中的标准版AnyDesk。与安卓系统一样,标准AnyDesk客户端可以使用许多MDM工具中的内置配置编辑器轻松配置。
二、通过MacOS MDM
通过移动设备管理工具配置macOS的AnyDesk客户端(版本6.4.0及以上)需要修改和上传XML文件。
该XML为.MOBILECONFIG格式,由几个XML组组成:
- PayloadContent
- PayloadScope
- PayloadUUID
- PayloadDisplayName
- PayloadIdentifier
- PayloadType
- PayloadVersion
1、PayloadContent
XML 标签 | 描述 | 值 类型 | 赋值 |
PayloadContent | 这个 XML 组包含行动 MDM 配置。以下标签属于这个组。 | <dict>…</dict> | |
PayloadDisplayName | 配置文件的名称。这将出现在部署的macOS设备上的系统偏好>配置文件中。 | string | e.g. Company A’s AnyDesk Configuration |
PayloadIdentifier | AnyDesk配置的有效载荷标识符;以反向域符号表示。 | string | e.g. com.companya.config.anydesk |
PayloadUUID | AnyDesk配置的随机UUID,在公司内部是唯一的。 | string | e.g. 5D2F7682-3B17-43EC-B6F6-CB20696ED631 |
UUID的格式如下: | |||
<8 位字符>-<4 位字符>-<4 位字符>-<4 位字符>-<12 位字符> | |||
每个字符可以是: | |||
1-9之间的数字 | |||
A-F之间的字母 | |||
PayloadType | 与您账户前缀相对应的自定义应用ID。 这个前缀可以在定制客户端的定制客户端细节页面上找到。 | string | |
com.philandro.anydesk-<prefix> | |||
请注意在这种情况下,不应该使用 “PayloadIdentifier “中创建的反向域名符号。需要遵循 “com.philandro.anydesk-<prefix>”的格式。 | |||
e.g. | |||
com.philandro.anydesk-ad-12345678 | |||
PayloadVersion | 此AnyDesk配置的内部整数版本。 | integer | e.g. 1 |
ad.* | 高级选项页面中的键值对 | string | 详情请见高级选项中的“赋值”列。 |
请注意,这里设置的所有设置和权限都是覆盖设置。 这意味着,受影响的权限和设置不能被注册设备上的用户改变。 | |||
ad.features.connect | 决定此AnyDesk客户端可否向其他客户端发送连接请求。 | string | 0: Disable, |
1: Enable | |||
ad.features.accept | 决定此AnyDesk客户端可否接收来自其他客户端的连接请求。 | string | 0: Disable, |
1: Enable | |||
2、其他
XML 标签 | 描述 | 值 类型 | 赋值 |
PayloadScope | 确定MDM配置文件的范围。”System “需要用来将AnyDesk配置应用于所有本地用户账户和全局AnyDesk服务。 | string | System |
PayloadUUID | MDM配置文件的随机UUID,在公司内部是唯一的。 | string | e.g. A2A5828E-F98C-45BB-9BFE-E4E854B3AC45 |
UUID的格式如下: | |||
<8 characters>-<4 characters>-<4 characters>-<4 characters>-<12 characters> | |||
每个字符可以是: | |||
1-9之间的数字 | |||
A-F之间的字母 | |||
请注意,该UUID应与PayloadContent::PayloadUUID中分配给AnyDesk配置的UUID不同。 | |||
PayloadDisplayName | MDM配置文件的名称。一个MDM配置文件可以包含多个应用程序的企业配置。 | string | e.g. Company A’s MDM Profile |
PayloadIdentifier | 反向域符号中的 MDM 配置文件标识符。 | string | e.g. com.companya.config |
PayloadType | MDM配置文件的类型。MDM配置文件的类型。对于AnyDesk配置,需要使用PayloadType “Configuration”。 | string | Configuration |
PayloadVersion | 相关MDM配置文件的内部整数版本。这有助于macOS区分同一配置文件的不同版本。 | integer | e.g. 1 |
3、配置文件的部署
配置文件可以手动部署在每个单独的设备上,也可以通过移动设备管理工具自动部署。
手动部署:
想要在macOS设备上手动部署配置文件,只需将生成的.MOBILECONFIG文件移到设备上,然后安装。可能需要在 “系统偏好”>”配置文件”中确认未签名/未验证的配置。当下次在该设备上启动定制的AnyDesk for macOS客户端时,这些变化将生效。
移动设备管理工具(MDM) 部署:
想要通过MDM工具在注册的macOS设备上部署配置文件,只需:
- 为macOS设备创建一个配置文件;
- 输入配置文件的名称和描述(可选);
- 上传带有AnyDesk配置的.MOBILECONFIG文件。另外,许多 MDM 工具允许管理员在这个阶段,在 MDM 工具中即时创建 XML;
- 选择应该用此配置文件注册的组/用户/设备;
- 保存。
根据MDM部署设置,几分钟后,MDM配置文件就应该被部署到所有连接的注册设备上。这可以在 “系统偏好”>”配置文件”中得到验证。
当下次在注册设备上启动定制的AnyDesk for macOS客户端时,这些变化将生效。
三、通过Android MDM
根据Google Play商店找到的标准版AnyDesk应用程序,具有应用程序限制功能的移动设备管理(MDM)工具可以部署一个修改版。请注意,通过MDM配置自定义AnyDesk客户端(APK)目前无法做到的。
使用许多MDM工具中的内置配置编辑器,可以轻松配置标准的AnyDesk客户端。要做到这一点:
1、将AnyDesk for Android应用程序添加到MDM解决方案中
以Google Play商店的链接作为Appstore的URL的安卓商店应用程序
2、为受管理的设备创建一个应用配置策略
- 目标应用程序将是在步骤1中添加的AnyDesk for Android应用程序;
- 要定制AnyDesk客户端的设置,可以使用内置的配置编辑器/设计器。 在这里,有一个预先定义的可用键的列表和每个值的描述。如果键值以默认值开头,则该选项将根据规范进行配置。然而,如果配置AnyDesk客户端的用户愿意,他们将能够把设置改为其他内容。
另一方面,如果配置方式是覆盖(Overrides),配置AnyDesk客户端的用户将无法改变设置。
3、保存。
与macOS一样,在保存后,注册的设备应自动从MDM解决方案中检索配置,并改变AnyDesk的设置。
四、通过iOS MDM
从AnyDesk 5.5.0 for iOS开始,管理员现在可以使用移动设备管理解决方案配置App Store中的标准版AnyDesk。
与安卓系统一样,标准AnyDesk客户端可以使用许多MDM工具中的内置配置编辑器轻松配置。 要做到这一点:
1、将AnyDesk for iOS应用程序添加到MDM解决方案中
以App Store链接作为Appstore URL的App Store应用程序。
2、为受管理的设备创建一个应用配置策略
目标应用程序将是在步骤1中添加的AnyDesk for iOS应用程序;
要定制AnyDesk客户端的设置,可以使用内置的配置编辑器/设计器。可用键的完整列表及其描述可在下方找到。
3、保存
配置将会通过与AnyDesk配置或Apple Configurator 2链接的配置文件,部署到iOS设备。 关于如何注册设备的更多信息,请直接联系IT管理员或MDM供应商。
五、配置键
需要为下面每个配置键的开头指定一个键的类型(默认/default,覆盖/overrides)。 如果键值以 默认/default 开头,则该选项将根据规范进行配置。 然而,如果配置的AnyDesk客户端的用户愿意,他们将能够改变设置。
例如:
defaults.ad.security.acl_enabled
另一方面,如果键值以 覆盖overrides 开始,配置AnyDesk客户端的用户将无法改变设置。
例如:
overrides.ad.discovery.hidden
标准AnyDesk客户端的默认值在赋值一栏中以粗体显示
配置键 | 描述 | 值 类型 | 赋值 |
ad.features.address_book | 设置客户端是否可以访问通讯录功能。 | boolean | false, true |
如果设置为 “true”,则需要为键设置一个有效的许可证密钥: | |||
ad.license.register_key | |||
ad.license.register_key | 在您的 my.anydesk.com 客户门户中发现的许可证密钥 | string | e.g. A1S273JUEKSA87XN |
ad.features.register_alias | 设置客户端在安装AnyDesk客户端后是否会自动注册AnyDesk-别名。 | boolean | false, true |
ad.ui.cfg_enabled | 设置客户端是否可以访问AnyDesk设置。 | boolean | false, true |
ad.ui.cfg_enable_audio | 设置客户端是否可以访问AnyDesk音频设置。 | boolean | false, true |
ad.ui.cfg_enable_connection | 设置客户端是否可以访问AnyDesk连接设置。 | boolean | false, true |
ad.ui.cfg_enable_privacy | 设置客户是否可以访问AnyDesk的隐私设置。 | boolean | false, true |
ad.ui.cfg_enable_recording | 设置客户是否可以访问AnyDesk的录制设置。 | boolean | false, true |
ad.security.auto_disconnect.mode | 设置是否启用自动断开连接功能。 | integer | 0: Disabled, |
1: Enabled | |||
ad.security.auto_disconnect.timeout | 设置自动断开前的持续不活跃时间,以秒为单位。 | integer | Minimum: 60 |
ad.security.hear_audio | 设置连接到本AnyDesk客户端的客户端是否能听到本设备的音频输出。 | boolean | false, true |
ad.security.sysinfo | 设置连接到本AnyDesk客户端的客户端是否能听到本设备的系统信息。 | boolean | false, true |
ad.security.acl_enabled | 确定该AnyDesk客户端的连接白名单功能是否启用。 | boolean | false, true |
ad.security.acl_list | 设置上面启用的连接白名单中的AnyDesk-ID或 别名。 | string | e.g. 123456789;mycomputer@ad |
ad.discovery.enabled | 设置客户端是否能找到同一局域网内的其他AnyDesk客户端。 | boolean | false, true |
ad.discovery.hidden | 设置其他AnyDesk客户端在同一本地网络中是否能找到此客户端。 | boolean | false, true |
ad.input.auto_touch_to_touch_mode | 设置当连接到远程安卓设备时,触控模式是否可用。 | boolean | false, true |
ad.input.touch_mode | 设置是否使用触控板或触控模式。 | integer | 1: Touch, |
2: Touchpad | |||
ad.image.follow_remote_cursor | 设置当远程鼠标光标移动到不同的显示器时是否自动切换视图。 | integer | 0: Disabled |
1: Enabled | |||
ad.image.follow_remote_focus | 设置当远程前台窗口在另一个显示器上时,是否自动切换视图。 | integer | 0: Disabled |
1: Enabled | |||
ad.image.quality_lossless | 设置从该客户端发出的会话是否使用无损质量传输设置。. | boolean | false, true |
ad.image.quality_preset | 设置外拨会话的传输质量。 | integer | 0: Best quality, |
1: Balanced, | |||
2: Optimize reaction time | |||
ad.image.show_remote_cursor | 设置您是否能看到远程光标。 | boolean | false, true |
ad.audio.playback_mode | 设置您是否能听到来自所连接设备的音频。 | integer | 0: Disable, |
1: Enable | |||
ad.audio.transmit_mode | 设置当其他人与您连接时,他们是否能听到您设备上的音频。 | boolean | 0: Disable, |
1: Enable | |||
ad.anynet.direct | 设置是否可以进行直接连接。 | boolean | false, true |
ad.anynet.listen_port | 为潜在的传入直接连接设置监听端口。 | integer | e.g. 0 |
ad.anynet.proxy.mode | 设置代理模式 | integer | 0: Never use a proxy server, |
1: Try to detect, | |||
2: Use a specific proxy server | |||
ad.anynet.proxy.addr | 设置代理服务器地址。 | string | e.g. 1.1.1.1 |
ad.anynet.proxy.port | 设置代理服务器端口。 | integer | e.g. 10000 |
ad.anynet.proxy.auth | 设置是否需要向代理服务器发送认证凭证。 | boolean | false, true |
ad.anynet.proxy.user | 设置代理服务器用户名 | string | e.g. myproxyuser |
ad.anynet.proxy.pass_plain | 设置代理服务器密码 | string | e.g. myproxypassword |
ad.recording.auto_start.incoming | 当有人连接到您的设备时,自动启动录像。 | integer | 0: Disabled |
1: Enabled | |||
ad.recording.auto_start.outgoing | 当您连接到其他设备时,自动启动录像。 | integer | 0: Disabled |
1: Enabled | |||
ad.session.remember_settings | 设置客户端是否保存访问数据,如在将来连接到同一远程设备时,直接启用隐私模式。 | boolean | false, true |