自訂和執行動作

在這個部分中:

自訂動作

可使用 PowerShell、Visual Basic 或 Java Script 來建立自訂動作,藉此允許其他 Environment Manager 動作無法進行的處理作業。這些指令碼保留在 XML 組態中,在執行階段複製到磁碟,然後被執行,在執行完成後被刪除。

根據以往慣例,通常會建立自訂動作以指定動作必要的延遲。自 2020.3 版起,Environment Manager 已引入內建於「動作」對話方塊的「延遲」索引標籤,因此不再需要自訂動作。

包含無效指令碼的動作會回傳失敗,且不會執行任何子動作。在 Environment Manager 8.1 之前,無論指令碼是否有效,自訂動作均可通過。

會針對成功及失敗的動作建立個別的稽核事件,可透過管理功能區內的稽核按鈕來檢視這些項目。

針對成功及失敗的動作建立個別的稽核事件。可透過管理功能區的稽核按鈕來檢視這些項目。

選擇所需的指令碼類型: PowerShell、Visual Basic 或 Java Script,然後直接在對話方塊中輸入指令碼。也可以使用複製和貼上來新增指令碼,或是使用匯入按鈕來匯入指令碼。

可套用下列能影響動作行為的設定:

  • 逾時 - 設定等候指令碼完成的逾時。若到達設定的時間,動作將會失敗。該項目並無可設定的最大值,不過值 0 即等於無限。在「自訂動作」中設定的逾時會覆寫預設節點設定。

    建議為「自訂動作」和「自訂條件」設定特定逾時值。如果指定碼無法完成,將逾時值設定為 0 (無限) 可能會導致登入或登出當機。

  • 防止指令碼以互動方式執行 - 此選項會依預設選取,並且表示指令碼將在沒有需使用者介入之快顯視窗的情況下執行。
  • 套用環境變數至組態 - 選取此選項後,指令碼中設定的任何環境變數也將設定於登錄及 EM 用戶端中,使其也能用於指令碼以外的情況。
  • 插入 - 選取要新增至指令碼的工作階段變數。清單包含下列內建變數:
    • SessionID - 目前工作階段 ID
    • UserSID - 使用者的安全性識別碼
    • UserTemp - 使用者的暫存目錄的位置

在「網路可使用」、「網路已連線」與「網路已中斷連線」觸發程序中,可新增更多內建的工作階段變數至指令碼以判斷連線屬性。

離開代碼

所有自訂指令碼都必須指定離開代碼,當傳回此代碼時,Environment Manager 代理程式會使用它來判斷指令碼成功或失敗。若指令碼不含離開代碼,代理程式會將其視為成功 (0 值)。

每個指令碼類型都必須使用特定結束陳述式:

  • VBScript: WScript.Quit [value]
  • JScript - WScript.Quit([value])
  • PowerShell: exit ([value])

以指令碼的離開代碼取代 [value]: 0 為成功,1 為失敗。例如: WScript.Quit 0WScript.Quit(0)exit (0)

PowerShell 指令碼

Windows PowerShell 指令碼會使用各種執行原則以阻止指令碼執行,或僅允許受信任發行者簽署的指令碼執行。Environment Manager 會覆寫執行原則並略過任何限制,使 PowerShell 指令碼得以執行。

您也可以透過「群組原則」設定使用者和電腦的執行原則以覆寫所有的 PowerShell 執行原則。不允許任何指令碼 (或僅允許已簽署的指令碼) 的使用者原則並不會影響任何以系統身分執行的 PowerShell 自訂動作。不過,若以目前的使用者身分執行,使用者原則將不會允許指令碼,自訂動作也會失敗。不允許任何指令碼 (或僅允許已簽署的指令碼) 的電腦原則將不允許執行任何 PowerShell 自訂動作。

因此,若要成功執行使用 PowerShell 的自訂動作,您的「群組原則」必須設為允許為使用者和電腦執行這些指令碼。

Environment Manager 相容於 PowerShell 版本 1.0、2.0 和 3.0。

執行動作

這些動作會執行觸發的應用程式或處理序。從檔案名稱欄位瀏覽至應用程式。在選取應用程式時會自動新增工作目錄。可新增額外參數以傳遞給程式。

若要處理序能夠使用不同的使用者認證執行,請選取執行身分索引標籤並選取需要的使用者。

若已選取不建立視窗 (控制台型應用程式) 核取方塊,則會對使用者隱藏任何與應用程式或處理序相關聯的指令視窗。

若節點已設為依序執行需要使用者介入才能完成的檔案 (例如程式檔案),請避免登入時在些節點中包含執行動作。否則,由於登入指令碼會等待執行指令碼完成而使得登入程序無限期中止。例如,若執行動作啟動 notepad.exe,則登入指令碼會等待記事本結束後再繼續執行登入程序。

若取消核取處理序結束之前不執行此動作的子動作選項,則會關閉使用者介入而無法保留此情況。

相關主題