环境操作
环境操作允许在受管端点上配置环境变量和会话变量。触发后,可以设置或删除这两种类型的变量,同时还可以附加环境变量。
在此部分:
环境变量
有两种常见的环境变量,即用户环境变量和系统环境变量。用户环境变量在 Environment Manager 中的“用户”触发器上设置,系统环境变量则在“计算机”触发器上设置。
操作中设置的环境变量可用于所有子操作或触发器以及任何将来的触发器。变量也可用于其他应用程序,例如 Windows 资源管理器,但仅在包含操作的触发器完成后才可使用。
-
用户环境变量通常存储与用户资源和设置相关的信息。
用户环境变量的示例包括指向特定用户文件夹的 %TEMP%(用于存储临时文件),或指向用户配置文件目录的 %HOMEPATH%。
-
系统环境变量通常指关键操作系统资源或架构的位置。
系统环境变量的示例包括 Windows 目录路径 %windir%,或指向 Program Files 目录位置的 %ProgramFiles%
会话变量
会话变量提供了环境变量的替代选项,允许数据通过 Environment Manager 配置进行传递,而不受应用于环境变量的生命周期和范围的限制,这是因为会话变量能够扩展到给定用户和会话的多个进程。
在可以使用环境变量的情况下,会话变量可在 Environment Manager 内的任何位置使用和扩展。这些变量可用于为映射驱动器和文件夹重定向操作应用定制文件路径,在自定义操作和条件的脚本中使用时尤其有用。
环境变量和会话变量操作
设置环境变量
输入变量名称和变量值。
此时将显示在运行 Environment Manager 控制台的计算机上可用的现有环境变量列表。您可选择这些变量,并根据需要编辑变量值。
环境变量在受管端点上设置,其值为输入值。
追加环境变量
输入要附加的变量名称和变量值,然后选择要在现有变量和附加值之间使用的分隔符。所选环境变量更新后将添加使用所输入分隔符的附加值。
此时将显示在运行 Environment Manager 控制台的计算机上可用的现有环境变量列表。通过输入要附加的变量值和分隔符,您可选择和附加这些变量。
例如,您可使用新位置附加 PATH 环境变量,将分隔符指定为分号。
删除环境变量
输入要从受管端点中删除的变量名称。
此时将显示在运行 Environment Manager 控制台的计算机上可用的现有环境变量列表。您可选择删除这些变量。
设置会话变量
输入要在 Environment Manager 配置中使用的变量名称和变量值。
会话变量在受管端点上设置,其值为输入值。
删除会话变量
输入要在 Environment Manager 配置中删除的会话变量名称。
会话变量格式
会话变量不区分大小写,并以封闭圆括号和前缀 $ 的格式进行引用。例如:
$(SessionVariable)
格式错误的会话变量不会扩展。下表给出了成功和失败扩展的一些示例。
在这些示例中,变量 ’valid_variable’ 已设置为 ’SessionVariableValue’。
参考 | 扩展 |
---|---|
$(valid_variable) | SessionVariableValue |
$(variable_does_not_exist) | $(variable_does_not_exist) |
$() | $() |
$no_brackets_defined | $no_brackets_defined |
$(missing_closing_bracket | $(missing_closing_bracket |
$missing_opening_bracket) | $missing_opening_bracket) |
$(valid_variable) $(Valid_Variable) $(vALID_vARIABLE) $(VALID_VARIABLE) | SessionVariableValue |
$(valid_variable$(valid_variable)) | $(valid_variable$(valid_variable)) |
$(valid_variable)) | SessionVariableValue) |
$((valid_variable) | $((valid_variable) |
默认的会话变量
Environment Manager 包括三种内置会话变量:
- SessionID - 当前的会话 ID
- UserSID - 用户的安全标识符
- UserTemp - 用户临时目录的位置
这些变量可以在操作和条件中使用,特别是可以使用 Insert 函数快速添加到自定义脚本。
会话变量示例
在策略操作中使用会话变量
在下面的示例中,会话变量用于在用户打开 Word 时映射驱动器。会话变量在登录时设置,具体取决于其 Active Directory 组织单位 (OU) 成员身份。
在登录时运行 If Else 条件,可检查用户的 OU 并设置相对于该组的 UserGroup 会话变量。例如,如果用户是 Sales 的成员,则 UserGroup 会话变量将设置为 ’sales’。
“映射驱动器”操作在用户打开 Word 时运行,将驱动器映射到以下位置:
\\Docs\$(UserGroup)
$(UserGroup) 扩展为登录时设置的值。例如,如果用户是 Sales 的成员,会话变量即会相应扩展,从而将驱动器映射到:
\\Docs\Sales
在自定义操作中使用会话变量
此示例演示如何通过 Environment Manager 自定义操作在脚本中使用会话变量。
“登录”>“桌面创建前”触发器中添加了两个操作,一个操作可设置两个会话变量,另一个操作可使用这些变量映射驱动器。
自定义操作
自定义操作中的以下脚本可从环境中获取用户名,并设置两个会话变量,即 $(first_letter) 和 $(first_two_letters)。
$user = $env:USERNAME
if ($user.Length -gt 1)
{
$first_letter = $user[0]
$first_obj = New-Object -ComObject "EmClient.SetValue"
$first_obj.Name = "first_letter"
$first_obj.Value = $first_letter
$first_obj.Apply("")
$first_two_letters = $user[0] + $user[1]
$second_obj = New-Object -ComObject "EmClient.SetValue"
$second_obj.Name = "first_two_letters"
$second_obj.Value = $first_two_letters
$second_obj.Apply("")
}
“映射文件”操作
“自定义”操作中设置的会话变量在“映射驱动器”操作中用于映射每个受管用户的驱动器:
%SYSTEMDRIVE%\%SESSIONNAME%\$(first_letter)\$(first_two_letters)\Home