次の方法で共有


カスタム アクションの進行状況Configuration Managerレポートについて

カスタム アクションは、Configuration Manager クライアントで実行されている間、進行状況インジケーターを表示するために使用される進行状況情報を報告できます。

COM オートメーション インターフェイス IProgressUI::ShowActionProgress を使用して、進行状況情報をタスク シーケンス環境に報告し、進行状況インジケーターを表示します。

IProgressUI::ShowActionProgress は、TSProgressUI.exeのプロセス外の COM オブジェクトである COM クラス ProgressUI で実装されます。

タスク シーケンス環境の ProgressUI

タスク シーケンスが実行される前にが ProgressUI 登録され、タスク シーケンスが完了すると登録解除されます。 ソース オペレーティング システムで、 ProgressUI ログオンしているユーザー資格情報の下で実行します。 タスク シーケンスの実行時にユーザーがログインしていない場合、COM オブジェクトの登録は失敗します。 ターゲット オペレーティング システムと Windows PE では、 ProgressUI システム アカウントで実行されます。

IProgressUI::ShowActionProgress の呼び出し

カスタム アクションでは、カスタム アクションの進行状況を報告し、進行状況インジケーターを表示するには、次の操作を行う必要があります。

注:

通常、アクションの実行に 1 分以上かかる場合は、進行状況情報を報告する必要があります。

進行状況インジケーターを表示するかどうかを決定する

次のロジックを使用して、環境変数を使用して、進行状況インジケーターを表示するかどうかを判断できます。

WindowsPE で実行している場合 ( _SMSTSInWinPE == "true")、または

インストール後にフル オペレーティング システムで実行している場合 (_SMSTSReturnToGINA=="true")、または

タスク シーケンスがメディアから開始されている場合 (_SMSTSLaunchMode "CD"、"DVD"、または "USB")、または

タスク シーケンスがスタンドアロン モード (_SMSTSStandAloneMode=="true") で実行されている場合、または

進行状況表示 UI フラグが設定されている場合 (_SMSTSShowProgressUI == "true")、進行状況インジケーターが表示されます。それ以外の場合は表示されません。

COM ProgressUI オブジェクトの作成

任意の ProgressUI COM オブジェクトで使用するのと同じ手法を使用して、オブジェクトを作成します。 C++ では、 を使用 CoCreateInstanceします。 C# では 、SMS TSE Progress UI への参照を追加し、ソース コードで クラスのインスタンスを ProgressUILib.ProgressUIClass 作成します。

VBScript で、Microsoft.SMS で を呼び出しますCreateObject。TsProgressUI

VBSript と C# で COM オブジェクトを作成する例については、「実行中のConfiguration Managerタスク シーケンスでタスク シーケンス変数を使用する方法」を参照してください。

必要な環境変数の取得

いくつかの環境変数には、 メソッドに渡す必要がある情報が IProgressUI::ShowActionProgress 含まれています。 たとえば、 パラメーターに必要 pszOrgName な組織名は、 _SMSTSOrgName環境変数 から使用できます。 詳細については、「 IProgressUI::ShowActionProgresss」を参照してください。 タスク シーケンス環境変数の読み取りについては、「実行中のConfiguration Managerタスク シーケンスでタスク シーケンス変数を使用する方法」を参照してください。

IProgressUI::ShowActionProgress の呼び出し

環境変数から取得された情報を使用して進行状況インジケーターを表示する を呼び出 IProgressUI::ShowActionProgress します。 現在の進行状況を渡すには、 パラメーター と uActionExecMaxStepを使用しますuActionExecStep。 たとえば、 で値 2 を渡し、 でuActionExecStepuActionExecMaxStep値 10 を渡した場合、アクションの完了率は 20% です。

関連項目

IProgressUI::ShowActionProgressProgressUI