自訂和執行動作
在這個部分中:
自訂動作
可使用 PowerShell、Visual Basic 或 Java Script 來建立自訂動作,藉此允許其他 Environment Manager 動作無法進行的處理作業。這些指令碼保留在 XML 組態中,在執行階段複製到磁碟,然後被執行,在執行完成後被刪除。
包含無效指令碼的動作會回傳失敗,且不會執行任何子動作。在 Environment Manager 8.1 之前,無論指令碼是否有效,自訂動作均可通過。
會針對成功及失敗的動作建立個別的稽核事件,可透過管理功能區內的稽核按鈕來檢視這些項目。
' ==========================================================
' Checks to see if a process (EMCoreService.exe) is running
' =========================================================
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objShell = CreateObject("Wscript.Shell")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'EMCoreService.exe'")
If colProcesses.Count =0 Then
Wscript.Echo "There are no instances of EMCoreService.exe running"
Wscript.Quit 0
Else
Wscript.Echo "EMCoreService.exe is running"
Wscript.Quit 1
End If
針對成功及失敗的動作建立個別的稽核事件。可透過管理功能區的稽核按鈕來檢視這些項目。
選擇所需的指令碼類型: PowerShell、Visual Basic 或 Java Script,然後直接在對話方塊中輸入指令碼。也可以使用複製和貼上來新增指令碼,或是使用匯入按鈕來匯入指令碼。
可套用下列能影響動作行為的設定:
-
逾時 - 設定等候指令碼完成的逾時。若到達設定的時間,動作將會失敗。可設定的最大值為 60 秒,設為 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 0、WScript.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,則登入指令碼會等待記事本結束後再繼續執行登入程序。
若取消核取處理序結束之前不執行此動作的子動作選項,則會關閉使用者介入而無法保留此情況。