动态令牌
您可以在任何 Workspace Environment Management 操 作中使用动态令牌来提高它们的功能。
可以在以下字段中使用动态令牌:
-
组策略设置
- 将“操作”设置为“删除”值时: 值
- 将“操作”设置为“设置值”,“类型”设置为 REG_SZ: 值, 数据
- 将“操作”设置为“设置值”,“类型”设置为 REG_EXPAND_SZ: 值, 数据
- 将“操作”设置为“设置值”,“类型”设置为 REG_MULTI_SZ: 值, 数据
注意:
组策略设置有两种类型:计算机设置和用户设置。对于计算机设置,不支持某些动态令牌。有关 组策略设置,请参阅动态令牌支持。
对组策略设置的动态令牌支持
在 组策略设置 中使用动态令牌可以在不同的环境中进行更具适应性的策略配置,减少手动配置并简化策略管理。
组策略设置有两种类型:
- 计算机设置。这些设置仅适用于计算机,无论谁登录计算机。
- 用户设置。这些设置仅适用于用户,无论他们登录到哪台计算机。
组策略设置支持所有动态令牌。计算机设置不支持以下设置。
-
井号标签
- ##FullUserName##
- ##UserInitials##
- ##ClientName##
- ##ClientIPAddress##
- ##UserLDAPPath##
- ##ClientRemoteOS##
- ADAttribute
- [ADAttribute:attrName]
- [UserParentOU: level]
- HKCU 下的注册表
应用程序
- 使用安装应用程序作为应用程序类型:命令行、工作目录和参数
- 使用文件/文件夹作为应用程序类型:目标
- 使用 URL 作为应用程序类型:快捷方式 URL
- 图标文件
打印机
- 目标路径
网络驱动器
- 目标路径和显示名称
虚拟驱动器
- 目标路径
注册表
- 目标路径、目标名称和目标值
注意:
目标值字段不支持环境变量扩展。如果您使用环境变量,它们将无法按预期工作。
环境变量
- 变量值
端口
- 端口目标
Ini 文件
- 目标路径、目标部分、目标值名称和目标值
注意:
目标部分、目标值名称和目标值字段不支持环境变量扩展。如果您使用环境变量,它们将无法按预期工作。
外部任务
- 路径和参数
文件系统操作
- 源路径和目标路径
某些过滤条件
- 示例:将 Active Directory 属性匹配* 作为条件类型: **测试的 Active Directory 属性和匹配结果
注意:
有关筛选条件支持字段的完整列表,请参阅筛选条件的支持性列表。
字符串操作
有时,您需要在脚本中操作字符串来映射驱动器或启动应用程序。Workspace Environment Management 代理接受以下字符串操作:
模式 | 说明 | 示例 |
---|---|---|
#Left(string,length)# | 返回左侧指定数量的字符。 |
#Left(abcdef,2)# 返回 ab
|
#Right(string,length)# | 返回右侧指定数量的字符。 |
#Right(abcdef,2)# 返回 ef
|
#Truncate(string,length)# | 如果字符串的长度小于或等于指定长度,则返回整个字符串。如果字符串的长度大于指定长度,则返回左侧指定数量的字符。 |
#Truncate(abcdef,3)# 返回 abc
|
&Trim(string)& | 删除字符串的所有前导空格和结尾空格。 |
&Trim( a b c )& 返回 a b c
|
&RemoveSpaces(string)& | 删除字符串的所有空格。 |
&RemoveSpaces( a b c )& 返回 abc
|
&Expand(string)& | 如果字符串包含以% 括起的环境变量,则扩展该变量。 |
&Expand(%userprofile%\destop)& 返回 C:\Users\Jill\desktop
|
$Split(string, splitter],index)$ | 根据用 [] 括起的拆分器将字符串拆分成子字符串,并返回索引子字符串。 |
$Split(abc-def-hij,[-],2)$ 返回 hij
|
#Mid(string,startindex)# | 从字符串中的指定索引开始,并返回其后的所有字符。 |
#Mid(abcdef,2)# 返回 cdef
|
!Mid(string,startindex,length)! | 从字符串中的指定索引开始,并返回指定数量的字符。 |
!Mid(abcdef,1,2)! 返回 bc
|
!Substring(string,startindex,length)! | 从字符串中的指定索引开始,并返回指定数量的字符。 |
!Substring(abcdef,1,2)! 返回 bc
|
#Mod(string,length)# | 将字符串除以长度并返回余数。字符串必须能够转换为整数。 |
#Mod(7,3)# 返回 1
|
注意:
- 字符串操作也受到井号标签和 Active Directory 属性的支持。例如:
#Left([ADAttribute:NAME],2)#
,其中,当前域用户的名称属性Administrator
返回Ad
,$Split(##ClientIPAddress##,[\.],2)$
返回157
。!Mid(string,startindex,length)!
和!Substring(string,startindex,length)!
操作总是最后执行。
井号标签
哈希标签是一种替代功能,广泛用于处理 Workspace Environment Management 项目。以下示例说明了如何使用哈希标签:
要写入 .ini 文件,您可以在 .ini 文件的路径中使用 %UserName%,然后 Workspace Environment Management 处理该文件并展开最终目录。但是,评估 Workspace Environment Management 在 .ini 本身中写入的值更加复杂:您可能希望从字面上写入 %UserName%,或者写扩展的值。
为了提高灵活性,##UserName## 作为哈希标签存在,因此使用 %UserName% 作为 一个值可以字面写入它,然后 ##UserName## 写入扩展的值。
有关示例,请参见下表:
模式 | 说明 | 示例 |
---|---|---|
##UserName## | 返回扩展的环境变量“%username%” | Jill |
##UserProfile## | 返回扩展的环境变量“%userprofile%” | C:\Users\Jill |
##FullUserName## | 返回 Active Directory 中用户的全名 | Jill Chou |
##UserInitials## | 返回 Active Directory 中的用户名首字母缩写 | JC |
##UserAppData## | 返回特殊文件夹的实际路径 - RoamingAppData | C:\Users\Jill\AppData\Roaming |
##UserPersonal## | 返回特殊文件夹的实际路径 - Documents | C:\Users\Jill\Documents |
##UserDocuments## | 返回特殊文件夹的实际路径 - Documents | C:\Users\Jill\Documents |
##UserDesktop## | 返回特殊文件夹的实际路径 - Desktop | C:\Users\Jill\Desktop |
##UserFavorites## | 返回特殊文件夹的实际路径 - Favorites | C:\Users\Jill\Favorites |
##UserTemplates## | 返回特殊文件夹的实际路径 - Templates | C:\Users\Jill\AppData\Roaming\Microsoft\Windows\Templates |
##UserStartMenu## | 返回特殊文件夹的实际路径 - StartMenu | C:\Users\Jill\AppData\Roaming\Microsoft\Windows\Start Menu |
##UserStartMenuPrograms## | 返回特殊文件夹的实际路径 - Programs | C:\Users\Jill\AppData\Roaming\Microsoft\Windows\Start Menu\Programs |
##UserLocalAppData## | 返回特殊文件夹的实际路径 - LocalAppData | C:\Users\Jill\AppData\Local |
##UserMusic## | 返回特殊文件夹的实际路径 - Music | C:\Users\Jill\Music |
##UserPictures## | 返回特殊文件夹的实际路径 - Pictures | C:\Users\Jill\Pictures |
##UserVideos## | 返回特殊文件夹的实际路径 - Videos | C:\Users\Jill\Videos |
##UserDownloads## | 返回特殊文件夹的实际路径 - Downloads | C:\Users\Jill\Downloads |
##UserLinks## | 返回特殊文件夹的实际路径 - Links | C:\Users\Jill\Links |
##UserContacts## | 返回特殊文件夹的实际路径 - Contacts | C:\Users\Jill\Contacts |
##UserSearches## | 返回特殊文件夹的实际路径 - SavedSearches | C:\Users\Jill\Searches |
##commonprograms## | 返回特殊文件夹的实际路径 - CommonPrograms | C:\ProgramData\Microsoft\Windows\Start Menu\Programs |
##ComputerName## | 返回计算机的名称 | WIN10EN-LR3B66L |
##ClientName## | 返回客户端计算机的名称 | W2K16ST-5IS28JP |
##ClientIPAddress## | 返回客户端计算机的 IP 地址 | 10.150.153.138 |
##IpAddress## | 返回计算机的 IP 地址 | 10.150.153.213 |
##ADSite## | 返回计算机所属的 Active Directory 站点 | NKG |
##DefaultRegValue## | - | 总是返回 string.Empty |
##UserLDAPPath## | 返回当前用户的唯一可分辨名称 | CN=Jill Chou,OU=User Accounts,OU=APAC,DC=citrite,DC=net |
##VUEMAgentFolder## | 返回代理文件夹 | C:\Program Files (x86)\Citrix\Workspace Environment Management Agent |
##RDSSessionID## | 返回远程桌面会话 ID | 2 |
##RDSSessionName## | 返回远程桌面会话名称 | RDP-Tcp#72 |
##ClientRemoteOS## | 返回用于连接到虚拟桌面的计算机的操作系统 | Windows |
##ClientOSInfos## | 返回计算机的操作系统信息 | Windows 10 Enterprise 64 位 |
Hash-tag ##UserScreenCaptureComment## 实施用于产品的特定部分。此标签可以包含在 高级设置 > UI 代理个性化 > 帮助台选项下的电子邮件模板中。如果包含在服务人员屏幕捕获实用程序中的屏幕截图下方,则会向用户显示一个注释字段。该评论包含在支持电子邮件中您将标签放置在电子邮件模板中的位置。
Active Directory 属性
要使用 Active Directory 属性,WEM 会将 [ADAttribute:attrName] 值替换为相关的 Active Directory 属性。[ADAttribute:attrName] 是任何 Active Directory 属性的动态标记。有一个相关的筛选器,用于检查指定属性的值。
对于用户组织单位 (OU) 结构,WEM 将 [UserParentOU:level] 值替换为相关的 Active Directory OU 名称。Active Directory 路径是 Active Directory 中的完整用户路径 (LDAP),[UserParentOU:level] 是其中的一个子集。
例如,假设您要为用户所属的 OU 构建网络驱动器。可以使用网络驱动器路径中的动态令牌 [UserParentOU:level] 来动态解析用户的 OU。有两种方法可以使用动态令牌:
- 直接在网络驱动器路径中使用 [UserParentOU:level] 动态令牌。例如,您可以使用以下路径:
\\Server\Share\[UserParentOU:0]\
。 - 设置一个名为 OU 的环境变量,然后将其值设置为 [UserParentOU:0]。然后,您可以将驱动器映射为
\\Server\Share\%OU%\
。
注意:
- 可以将数字“0”替换为与您要在 OU 结构中达到的级别相对应的数字。
- 您可以将变量附加到路径中。若要执行此操作,请确保您具有与 OU 布局匹配的精确文件夹结构。
您还可以使用 Active Directory 属性进行筛选。在 管理 > 筛选器 > 条件 > 筛选条件列表 选项卡上,单击 添加后,可以打开“新建筛选条件”窗口。在“新建筛选条件”窗口中,您可以看到与 Active Directory 属性关联的以下四种筛选条件类型:
- Active Directory 属性匹配
- Active Directory 组匹配
- Active Directory 路径匹配
- Active Directory 站点匹配
对于Active Directory 属性匹配,动态标记为 [ADAttribute:attrName]。 没有动态令牌可用于 Active Directory 组匹配,因为该条件类型用于检查组成员身份。 对于 Active Directory 路径匹配,完整 LDAP 路径的动态令牌是 ##UserLDAPPath##。 对于 Active Directory 站点匹配,动态令牌是 ##ADSite##。
有关示例,请参见下表:
模式 | 说明 | 示例 |
---|---|---|
[ADAttribute:attrName] | 返回域用户的指定属性 |
[ADAttribute:name] 返回 Administrator
|
[PrinterAttribute:printername|attrName] | 返回指定域打印机的指定属性 | [PrinterAttribute:printer1|name] 返回 printer1 |
[UserParentOU: level] | 返回当前用户的父 OU 的指定级别 |
CN=Jill Chou,OU=User Accounts,OU=APAC,DC=citrite,DC=net 中的 [UserParentOU:1] 返回 APAC
|
注册表
为使用注册表,WEM 会将 [RegistryValue:<Registry path>]
值替换为相关的注册表值。例如,可以指定以下值:
- [RegistryValue:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Norskale\Agent Host\AgentLocation]
XML 文件
为使用 XML 文件,WEM 会将 [GetXmlValue:<XML path>|<tag name>]
值替换为 XML 文件中的特定标记值。XML 路径可以是实际路径,也可以是解析为路径的环境变量。必须将环境变量用 % 括起。例如,可以指定以下值:
- [GetXmlValue:C:\citrix\test.xml|summary] 或
- [GetXmlValue:%xmlpath%|summary]
INI 文件
为使用 .ini 文件,WEM 会将 [GetIniValue:<INI path>|<section name in the .ini file>|<key name in the .ini.file>]
替换为键值。INI 路径可以是实际路径,也可以是解析为路径的环境变量。必须将环境变量用 % 括起。例如,可以指定以下值:
- [GetIniValue:C:\citrix\test.ini|PLD_POOL_LIC_NODE_0_0|LicExpTime] 或
- [GetIniValue:%inipath%|PLD_POOL_LIC_NODE_0_0|LicExpTime]
更多信息
过滤条件的支持性列表
下表列出了所有条件类型,其测试值或匹配结果支持动态令牌。
状况类型 | 测试值 | 匹配结果 |
---|---|---|
计算机名称匹配 | - | 是 |
ClientName 匹配 | - | 是 |
环境变量匹配 | 否 | 是 |
注册表值匹配 | 是 | 是 |
WMI 查询结果匹配 | - | 是 |
XenApp 场名称匹配 | - | 是 |
XenApp 区域名称匹配 | - | 是 |
XenDesktop 场名称匹配 | - | 是 |
XenDesktop 桌面组名称匹配 | - | 是 |
Active Directory 属性匹配 | 是 | 是 |
名称或值在列表中 | 是 | 是 |
计算机名称不匹配 | - | 是 |
无 ClientName 匹配 | - | 是 |
无环境变量匹配 | 否 | 是 |
无注册表值匹配 | 是 | 是 |
无 WMI 查询结果匹配 | - | 是 |
XenApp 场名称不匹配 | - | 是 |
XenApp 区域名称不匹配 | - | 是 |
XenDesktop 场名称不匹配 | - | 是 |
XenDesktop 桌面组名称不匹配 | - | 是 |
没有 Active Directory 属性匹配 | 是 | 是 |
名称或值不在列表中 | 是 | 是 |
动态值匹配 | 是 | 是 |
无动态值匹配 | 是 | 是 |
文件版本匹配 | 是 | 是 |
没有文件版本匹配 | 是 | 是 |
已发布的资源名称 | - | 是 |
名称在列表中 | 是 | 是 |
名称不在列表中 | 是 | 是 |
文件/文件夹存在 | - | 是 |
文件/文件夹不存在 | - | 是 |