關於Configuration Manager自訂動作用戶端應用程式
Configuration Manager中的工作順序會在用戶端部署期間執行自訂動作作業。 應用程式可以是進程、腳本或其他命令。 應用程式的需求定義于受控物件格式 (MOF) 檔中。 範例需求包括作業環境、命令列引數、屬性和傳回碼。 處理動作時,它們會新增至工作順序環境。
自訂動作 MOF 檔案
自訂動作的 MOF 檔案類似下列範例:
[ CommandLine("smsswd.exe /run:%1 abc.exe %2"),
: (custom ui control and category qualifiers for action)
]
class MyCustomAction : SMS_TaskSequence_Action
{
[TaskSequencePackage, CommandLineArg(1)]
string PackageIDForAbcExe;
[CommandLineArg(2), AllowedLen("1-32000")]
string AbcCommandLineArgs;
[SuccessCodes, Not_Null]
string AbcSuccessCodes = "0 3010";
string SomeOtherPropertyThatAbcNeeds;
string SupportedEnvironment = "WinPEandFullOS";
};
MOF 檔案描述自訂動作應用程式輸入、環境、屬性和部署套件資訊所需的資訊。
如需詳細資訊,請參閱關於Configuration Manager自訂動作 MOF 檔案。
應用程式輸入
自訂動作必須自動執行,因此應用程式不應該提示使用者輸入。 所有輸入都應該從命令列、工作順序環境或資料檔案接收。
動作應用程式的命令列是使用執行 命令列 內建動作,在 MOF 檔案中設定。
例如:
CommandLine("smsswd.exe /run:PackageID abc.exe [any abc.exe command line args]"
應用程式處理
工作順序應用程式會執行自訂動作作業。 它必須留意其作業環境,並可存取工作排序環境變數、報告進度,以及傳回完成碼。
環境
MOF 檔案應該使用SMS_TaskSequence_Action Server WMI ClassSupportedEnvironment
屬性來指定作業環境。 可用的環境包括 Windows PE () WinPE
、完整的作業系統 (FullOS
) ,或兩個環境 () WinPEandFullOS
。
環境的選擇取決於情況。 例如,操作前安裝設定可能會在 Windows PE 環境中完成。 如需詳細資訊,請參閱 OS 部署的基礎結構需求。 更新目前安裝的作業系統將會使用完整的作業系統環境。 例如,軟體或驅動程式安裝。 作業系統環境無從驗證的工作,例如重新開機或建立網路連線,可以使用這兩個環境設定來執行。
處理
在處理期間,您可以使用 TSEnvironment
COM 自動化物件來存取 MOF 檔案所定義的工作順序變數。 如需詳細資訊,請參閱How to Use Task Sequence Variables in a Running Configuration Manager Task Sequence。
如果作業需要很長的時間,您可以使用 ProgressUI 用戶端 COM 自動化類別,向工作順序環境報告進度,並顯示進度指示器。 如需詳細資訊,請參閱關於報告自訂動作進度Configuration Manager。
完成
應用程式應該將 SuccessCodes
環境變數設定為完成時的傳回值。
返回 | 描述 |
---|---|
0 | 成功 |
非零 | 失敗 |
如果應用程式完成後需要重新開機, SMSTSRebootRequested
則應該設定環境變數。 如需詳細資訊,請 參閱工作順序變數。 如需設定環境變數的資訊,請參閱如何在執行中的工作順序Configuration Manager工作順序中使用工作順序變數。
部署
若要供Configuration Manager使用,自訂動作應用程式必須可從Configuration Manager套件取得。 系統管理員可以使用 Configuration Manager 主控台或使用程式設計語言來建立套件。 如需詳細資訊,請參閱 如何建立套件。
套件識別碼必須可供部署運作。 MOF 檔案通常會宣告屬性來保存它,如下列範例所示:
[TaskSequencePackage, CommandLineArg(1)]
string PackageIDForAbcExe;
注意事項
套件識別碼是SMS_Package Server WMI ClassPackageID
屬性。
在工作順序編輯器中編輯自訂動作時,會從系統管理員取得套件識別碼。
若要啟用此行為,您的自訂動作控制項可以在其實作中使用文字編輯控制項,從系統管理員取得套件識別碼。 如需使用文字控制項的範例,請參閱如何建立Configuration Manager自訂動作控制項。
由系統管理員使用時,會使用工作順序編輯器,將自訂動作控制項編輯為工作順序的一部分。 當工作順序編輯器儲存時, 會建立SMS_TaskSequencePackage伺服器 WMI 類別 來保存工作順序,包括自訂動作。
工作順序套件接著會連同自訂動作所參考的自訂動作套件一起公告給用戶端。 如需詳細資訊,請 參閱如何建立廣告。
在用戶端上執行自訂動作時,會提供自訂動作的套件識別碼作為命令列參數,從中擷取並執行自訂動作的二進位檔案。
套件識別碼是使用 /run
命令列參數來Smsswd.exe。
預先網路分割區和預先分割區設定
如果您需要先設定磁片或網路連線,才能擁有磁碟分割,而且在擁有網路連線之前,您必須建立應用程式來執行這些工作。 您的應用程式應該放在自訂開機映射中,方法是使用 Windows 評定及部署套件 (ADK) 。 如需詳細資訊,請參閱 適用于 IT 專業人員的 Windows ADK 案例。
注意事項
將檔案新增至開機映射檔案可能會增加 RAM 的最低需求,而且可能會因為記憶體不足的情況而導致工作順序以非預期的方式失敗。
然後將映射匯入Configuration Manager作為自訂映射。 如需詳細資訊,請 參閱新增開機映射。
應用程式、任何支援檔案和自訂SMSTS.INI應該放在 Windows 資料夾中。
若要使用應用程式,請在包含預先分割區/網路步驟的工作順序中使用自訂開機映射。