指令檔規則
指令檔規則可使用 PowerShell 或 VBScript 建立自訂規則,以滿足複雜的要求。 可以動態允許、封鎖或根據各種指令檔條件提升應用程式,從而對應用程式行為提供強大、靈活的控制。
指令檔規則可以利用透過 PowerShell 或 VBScript 存取的任何介面,例如 COM (元件物件模型),而且會在下列情況下評估每個指令檔:
-
部署新組態至電腦時
-
使用者登入時
設定指令檔規則
您可以在 指派時間? 頁面中設定 應用程式控制規則時,設定指令檔規則。 若要設定指令檔規則,請依照以下步驟進行:
-
在 何時指派? 頁面上,從選取來源 下拉式清單 中選取已 指令檔 選項。
指令檔索引標籤隨即出現。 -
指定指令檔的名稱。
-
在指令檔語言下拉式清單中,根據您的需求選取 PowerShell 或 VBScript 選項。
如需更多有關使用指令檔的資訊,請參閱以下章節。
PowerShell 指令檔
如果指令檔傳回值為 0 的 (結束),則指令檔將通過並套用規則。 如果傳回任何非零值,指令檔將失敗,且規則將不適用。
每個 PowerShell 指令檔都會在 PowerShell.exe 的實例中執行,因此,Application Control 既不會執行也不會新增任何特定的語法,所有正確形式的 PowerShell 都會運作。
PowerShell 必須安裝在將要使用指令檔的任何端點上。
VBScripts
每個指令檔在託管指令檔引擎中執行,允許對指令檔執行進行更大的控制,同時提供高度的輸入和輸出控制。
-
未使用 VBS 檔案。
-
不會產生個別處理序。
指令檔必須寫入為函數,且可包含許多函數,但必須指定主要啟動函數。 Application Control 代理程式執行啟動功能,可用於叫用其他功能。
AMScriptRule COM 物件已內建到指令檔引擎中,並可存取下列方法:
-
strUsername = AMScriptRule.UserName
-
strUserdomain = AMScriptRule.UserDomain
-
strSessionid = AMScriptRule.SessionID
-
strStationname = AMScriptRule.WinStation
在此執行個體中的 Microsoft 標準表示 WinStation 傳回終端機服務工作階段名稱的值,此名稱由工作階段類型決定,典型值為「Console」或「RDP-Tcp#34」,而非一般為 WinSta0 的 Window 站名稱。
AMScriptRule COM 物件也包含下列方法:
-
strLog = AMScriptRule.Log "My Log Statement"
可讓您將記錄字串輸出至代理程式記錄檔案,以搭配除錯指令檔規則使用。
-
strEnvironmentvar = AMScriptRule.ExpandEnvironment ("%MyEnvironmentVariables%")
展開執行指令檔的使用者的環境變數。
使用 WScript。 shell 展開環境變數僅傳回 SYSTEM 變數。
-
-
在入口函數下拉式清單中,選取 ScriptedRule。
輸入功能選項僅適用於 VBScript。
-
在指令檔 欄位中,新增 PowerShell 或 VBScript。
-
導覽至 選項 標籤以設定指令檔執行和逾時。
-
在 選項 標籤上,從 執行類型 下拉式清單中選取指令檔執行方法,如下所示:
-
以使用者身分執行每個工作階段: 指定每個使用者登入時執行指令檔。 設定僅適用於使用者工作階段的持續時間。 注意,如果桌面已解除鎖定,指令檔也會執行。
-
以系統身分執行每個工作階段: 指定每個使用者登入時,指令檔以系統帳戶權限執行一次。 設定僅適用於使用者工作階段的持續時間。
-
每個電腦做為系統: 指定指令檔在電腦啟動時執行一次,並具有系統帳戶權限。 設定會套用至所有使用者工作階段,直到電腦重新啟動、Application Control 代理程式重新啟動或設定變更為止。
-
-
啟用使用者登入完成之前 不要執行指令檔 選項,以防止指令檔在使用者登入完成之前執行。
-
在 秒數中指定要等待的時間,或指定指令檔逾時 ,讓指令檔在指令檔逾時之前繼續執行。 零 (0) 秒設定可防止指令檔逾時。 如果發生逾時,結果會失敗,且無法套用設定。
-
按一下新增。