Сведения об отчете о ходе выполнения пользовательских действий Configuration Manager
Пока настраиваемое действие выполняется на Configuration Manager клиенте, оно может сообщать сведения о ходе выполнения, которые используются для отображения индикатора хода выполнения.
Интерфейс автоматизации COM IProgressUI::ShowActionProgress используется для передачи сведений о ходе выполнения в среду последовательности задач и отображения индикатора хода выполнения.
IProgressUI::ShowActionProgress
реализуется в com-классе ProgressUI, который является внепроцессным COM-объектом в TSProgressUI.exe.
ProgressUI в среде последовательности задач
Перед выполнением последовательности задач регистрируется, ProgressUI
а затем, когда последовательность задач завершается, она не регистрируется. В исходной операционной системе выполняется с учетными данными пользователя, ProgressUI
выполнившего вход. Если при выполнении последовательности задач ни пользователь не вошел в систему, регистрация com-объекта завершается ошибкой. В целевой операционной системе и в Среде предустановки ProgressUI
Windows выполняется под системной учетной записью.
Вызов IProgressUI::ShowActionProgress
В пользовательском действии необходимо выполнить следующие действия, чтобы сообщить о ходе выполнения пользовательского действия и отобразить индикатор хода выполнения.
Примечание.
Как правило, следует сообщать сведения о ходе выполнения, если выполнение действия занимает более одной минуты.
Определение того, должен ли отображаться индикатор хода выполнения
С помощью следующей логики можно использовать переменные среды, чтобы определить, должен ли отображаться индикатор хода выполнения.
Если вы работаете в WindowsPE ( _SMSTSInWinPE
== "true"), или
Если после установки используется полная операционная система (_SMSTSReturnToGINA
=="true"), или
Если последовательность задач запускается с носителя (_SMSTSLaunchMode
имеет значение "CD", "DVD" или "USB"), или
Если последовательность задач выполняется в автономном режиме (_SMSTSStandAloneMode
=="true"), или
Если флаг пользовательского интерфейса show progress установлен (_SMSTSShowProgressUI
== "true"), индикатор хода выполнения должен отображаться; в противном случае он не должен отображаться.
Создание объекта COM ProgressUI
Объект создается ProgressUI
с помощью того же метода, что и для любого COM-объекта. В C++ используется CoCreateInstance
. В C# вы добавляете ссылку на пользовательский интерфейс выполнения TSE SMS и в исходном коде создаете ProgressUILib.ProgressUIClass
экземпляр класса .
В VBScript вызовите CreateObject
с помощью Майкрософт.SMS. TsProgressUI.
Пример создания COM-объекта в VBSript и C# см. в статье Использование переменных последовательности задач в выполняемой последовательности задач Configuration Manager.
Получение обязательных переменных среды
Несколько переменных среды содержат сведения, которые необходимо передать в IProgressUI::ShowActionProgress
метод . Например, имя организации, необходимое pszOrgName
для параметра, доступно из переменной среды , _SMSTSOrgName
. Дополнительные сведения см. в разделе IProgressUI::ShowActionProgress. Сведения о считывании переменных среды последовательности задач см. в разделе Использование переменных последовательности задач в последовательности задач выполняющейся Configuration Manager.
Вызов IProgressUI::ShowActionProgress
Вызовите IProgressUI::ShowActionProgress
для отображения индикатора хода выполнения, используя сведения, полученные из переменных среды. Чтобы передать текущий процентный ход выполнения, используйте параметры uActionExecStep
и uActionExecMaxStep
. Например, если передать значение 2 в uActionExecStep
и значение 10 в uActionExecMaxStep
, то процент завершения действия составляет 20 процентов.