環境動作
環境動作可讓您在託管端點上設定環境變數和工作階段變數。在觸發時,您可以設定或刪除這兩種變數,也可同時附加環境變數。
在這個部分中:
環境變數
存在兩種常用的環境變數類型 – 使用者環境和系統環境變數。可以在 Environment Manager 的使用者觸發程序上設定使用者環境變數,並在電腦觸發程序上設定系統環境變數。
在動作中設定的環境變數適用於所有子動作或觸發程序,以及將來的任何觸發程序。這些變數也適用於其他應用程式,例如 Windows 檔案總管,但只有在包含動作的觸發程序完成後才能使用。
-
使用者環境變數通常會儲存與使用者擁有之資源和設定有關的資訊。
使用者環境變數的範例包括可指向特定使用者資料夾以儲存暫存檔案的 %TEMP%,或是指向使用者設定檔目錄的 %HOMEPATH%。
-
系統環境變數通常會參照關鍵作業系統資源或架構的位置。
系統環境變數範例包括作為 Windows 目錄路徑的 %windir%,或是指向程式檔案目錄位置的 %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 - 使用者的暫存目錄的位置
您可以在動作和條件中使用這些變數,尤其是可以使用插入函數快速新增至自訂指令碼。
工作階段變數範例
在原則動作中使用工作階段變數
在以下範例中,使用者會在開啟 Word 時使用工作階段變數來對應磁碟機。工作階段變數會在登入時設定,並相依於其 Active Directory 組織單位 (OU) 成員資格。
在登入時執行的 If Else 條件會檢查使用者的 OU 並設定相對於該群組的 UserGroup 工作階段變數。例如,若使用者是銷售部門的成員,UserGroup 工作階段變數會設為 ’sales’。
當使用者開啟 Word 時執行的對應磁碟機動作會將磁碟機對應至以下位置:
\\Docs\$(UserGroup)
$(UserGroup) 會展開至登入時設定的值。例如,若使用者是銷售部門的成員,工作階段變數會將磁碟機對應展開至:
\\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