您可以使用统一资源标识符 (Uniform Resource Identifier, URI) 为最终用户创建 Web 链接或电子邮件链接。最终用户可以单击这些链接,以使用特定配置选项启动 HTML Access、连接到服务器,以及启动远程桌面或已发布的应用程序。

通过构建提供以下部分或全部信息的 URI 来创建链接,这样最终用户就无需再提供这些信息。

  • 服务器地址
  • 服务器的端口号
  • Active Directory 用户名
  • RADIUS 或 RSA SecurID 用户名(如果与 Active Directory 用户名不同)
  • 域名
  • 远程桌面或已发布的应用程序的显示名称
  • 操作,包括浏览、重置、注销和启动会话

URI 规范

所需的语法包括用于指定服务器的路径部分,还包括(可选)用于指定用户、远程桌面或已发布的应用程序以及操作或配置选项的查询。

要创建用于启动 HTML Access 的 URI,请使用以下语法:

https://authority-part[/?query-part]
authority-part
指定服务器地址,也可以指定非默认端口号。服务器名称必须遵循 DNS 语法。

要指定端口号,请使用下面的语法:

server-address:port-number
query-part
指定要使用的配置选项或要执行的操作。查询不区分大小写。要使用多个查询,请使用 & 符号分隔查询。如果查询之间相互冲突,则以列表中的最后一项查询为准。使用以下语法:
query1=value1[&query2=value2...]

创建查询部分时,请遵循以下原则:

  • 如果不使用至少一个支持的查询,将显示默认的 VMware Horizon Web 门户页面。
  • 在查询部分中,不支持某些特殊字符,因此您必须对这些字符使用 URL 编码格式,例如:使用 %23 表示井号 (#),使用 %25 表示百分号 (%),使用 %26 表示 & 符号,使用 %40 表示 @ 符号,使用 %5C 表示反斜杠 (\)。

    有关 URL 编码的更多信息,请转至 http://www.w3schools.com/tags/ref_urlencode.asp

  • 查询部分中所有的非 ASCII 字符都必须先根据 UTF-8 [STD63] 进行编码,然后相应 UTF-8 序列的每个八进制数都必须进行百分比编码,以 URI 字符的形式显示。

    有关 ASCII 字符的编码信息,请参考 http://www.utf8-chartable.de/ 上的 URL 编码参考。

支持的查询

本主题列出了 HTML Access 支持的查询。如果要为多种类型的客户端(如桌面客户端和移动客户端)创建 URI,请参阅每种类型的客户端系统的指南文档。

action
表 1. 可与 action 查询一起使用的值
说明
browse 显示指定服务器上托管的可用远程桌面和已发布应用程序的列表。使用此项操作时无需指定远程桌面或已发布的应用程序。
start-session 启动指定的远程桌面或已发布的应用程序。如果未提供任何操作查询以及远程桌面名称或已发布应用程序名称,则 start-session 为默认操作。
reset 关闭并重新启动指定的远程桌面。未保存的数据都会丢失。重置远程桌面相当于按下物理 PC 上的重置按钮。此操作对于已发布的应用程序无效。
logoff 将用户从远程桌面中的客户机操作系统中注销。此操作对于已发布的应用程序无效。
restart 在用户确认重新启动操作请求后,关闭并重新启动主远程桌面。此操作对于已发布的应用程序无效。
applicationId
已发布的应用程序的显示名称。该显示名称是创建应用程序池时在 Horizon Console 中指定的名称。如果显示名称包含空格,浏览器将使用 %20 来表示空格。
args
指定要在启动已发布的应用程序时添加的命令行参数。使用语法 args= value,其中 value 是字符串。对于以下字符,使用百分号编码:
  • 对于冒号 (:),使用 %3A
  • 对于反斜杠 (\),使用 %5C
  • 对于空格 ( ),使用 %20
  • 对于双引号 ("),使用 %22

例如,要为 Notepad++ 应用程序指定 "My new file.txt" 文件名,请使用 %22My%20new%20file.txt%22

desktopId
远程桌面的显示名称。该显示名称是创建桌面池时在 Horizon Console 中指定的名称。如果显示名称包含空格,浏览器将使用 %20 来表示空格。
domainName
与连接到远程桌面或已发布的应用程序的用户相关联的 NETBIOS 域名。例如,使用 mycompany,而非 mycompany.com
tokenUserName
RSA 或 RADIUS 用户名。只有在 RSA 或 RADIUS 用户名与 Active Directory 用户名不同时,才使用此查询。如果未指定此查询且需要 RSA 或 RADIUS 身份验证,则使用 Windows 用户名。
userName
连接到远程桌面或已发布应用程序的 Active Directory 用户。用户名可以采用以下格式之一:
  • userName
  • domainName%5CuserName
  • 用户主体名称 (UPN),即 userName@domainName
unauthenticatedAccessEnabled
当此选项设置为 true 时,默认将启用“未验证访问”功能。 HTML Access 将会启动,并且显示匿名用户帐户。举例说明该语法: unauthenticatedAccessEnabled=true
unauthenticatedAccessAccount
如果启用了“未经身份验证的访问”功能,请设置要使用的帐户。如果“未验证访问”处于停用状态,那么此查询将被忽略。使用 anonymous1 用户帐户的语法示例: unauthenticatedAccessAccount=anonymous1
webviewMode
当此选项设置为 true 时,远程会话将在 Web 视图模式下启动。在 Web 视图模式下,将隐藏 HTML Access 边栏。Web 视图模式还允许某些第三方移动应用执行以下操作:
  • 将事件从软键盘发送到远程桌面
  • HTML Access 中使用移动应用界面在本机触摸模式和触控板触摸模式之间切换

URI 语法示例

以下每个 URI 示例后都包含最终用户在单击 URI 链接后所看到的内容描述。查询不区分大小写,例如,您可以使用 domainNamedomainname

  1. https://horizon.mycompany.com/?domainName=finance&userName=fred

    HTML Access 启动并连接到 horizon.mycompany.com 服务器。在登录框中的用户名文本框中填入名称 fred,在文本框中填入 finance。用户只需提供一个密码。

  2. https://horizon.mycompany.com/?userName=finance%5Cfred

    HTML Access 启动并连接到 horizon.mycompany.com 服务器。在登录框的用户名文本框中,将填入名称 finance\fred。用户只需提供一个密码。

  3. https://horizon.mycompany.com/?userName=fred@finance

    HTML Access 启动并连接到 horizon.mycompany.com 服务器。在登录框的用户名文本框中,将填入名称 fred@finance。用户只需提供一个密码。

  4. https://horizon.mycompany.com/?desktopId=Primary%20Desktop&action=start-session

    HTML Access 启动并连接到 horizon.mycompany.com 服务器。出现登录框,提示用户输入用户名、域名和密码。成功登录后,客户端连接到显示名称为 Primary Desktop 的远程桌面,并且用户登录到客户机操作系统。

  5. https://horizon.mycompany.com/?applicationId=Notepad&action=start-session

    HTML Access 启动并连接到 horizon.mycompany.com 服务器。出现登录框,提示用户输入用户名、域名和密码。成功登录后,将会启动记事本应用程序。

  6. https://horizon.mycompany.com:7555/?desktopId=Primary%20Desktop

    该 URI 与前面的示例效果相同,不同的是该 URI 对服务器使用非默认端口 7555。默认端口为 443。由于已提供远程桌面标识符,因此即使 URI 中不包含 start-session 操作,远程桌面也能启动。

  7. https://horizon.mycompany.com/?applicationId=Primary%20Application&desktopId=Primary%20Desktop

    此 URI 同时指定了已发布的应用程序和远程桌面。当同时指定已发布的应用程序和远程桌面时,只会启动远程桌面。

  8. https://horizon.mycompany.com/?desktopId=Primary%20Desktop&action=reset

    HTML Access 启动并连接到 horizon.mycompany.com 服务器。出现登录框,提示用户输入用户名、域名和密码。成功登录后,该客户端会显示一个对话框,提示用户确认主桌面重置操作。

    注: 只有在管理员允许最终用户重置其计算机时,才能执行该操作。
  9. https://horizon.mycompany.com/?My%20Notepad++?args=%22My%20new%20file.txt%22

    在服务器 horizon.mycompany.com 上打开 My Notepad++,然后在应用程序启动命令中传递参数 My new file.txt。文件名用双引号引起来,因为它包含空格。

  10. https://horizon.mycompany.com/?Notepad++%2012?args=a.txt%20b.txt

    在服务器 horizon.mycompany.com 上打开 Notepad++ 12,然后在应用程序启动命令中传递参数 a.text b.txt。由于该参数未使用双引号引起来,因此,文件名用空格隔开,并在 Notepad++ 中单独打开这两个文件。

    注: 应用程序使用命令行参数的方式可能不相同。例如,如果将 a.txt b.txt 参数传递给 WordPad,WordPad 仅打开一个文件 ( a.txt)。
  11. https://horizon.mycompany.com/?desktopId=Primary%20Desktop&action=restart

    HTML Access 启动并连接到 horizon.mycompany.com 服务器。出现登录框,提示用户输入用户名、域名和密码。在成功登录后,客户端将显示一个对话框,提示用户确认主桌面重新启动操作。

    注: 只有在管理员允许最终用户重新启动其计算机时,才能执行该操作。
  12. https://horizon.mycompany.com/?unauthenticatedAccessEnabled=true&unauthenticatedAccessAccount=anonymous_user1

    HTML Access 启动并使用 anonymous_user1 帐户连接到 horizon.mycompany.com 服务器。

HTML 代码示例

您可以使用 URI 来创建超文本链接和按钮,以将其包含在电子邮件或网页中。以下示例介绍了如何使用第一个 URI 示例中的 URI 对超文本链接 Test Link 和按钮 TestButton 进行编码。

<html>
<body>

<a href="https://horizon.mycompany.com/?domainName=finance&userName=fred">Test Link</a><br>

<form><input type="button" value="TestButton" onClick="window.location.href=
'https://horizon.mycompany.com/?domainName=finance&userName=fred'"></form> <br>

</body>
</html>