共用方式為


關於 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 資料夾中。

若要使用應用程式,請在包含預先分割區/網路步驟的工作順序中使用自定義開機映射。

另請參閱

關於 Configuration Manager 自訂動作

關於 Configuration Manager 自定義動作MOF檔案