TS: Управление Progress Bar в Task Sequence

Статья посвящена одной из «украшалок» Configuration Manager — progress bar. Очень часто требуется видеть процесс и прогресс выполнения какого либо действия в ConfigMgr, как, например при загрузке дистрибутива с точки распространения, либо как при захвате и восстановлении профиля, но не все знают как это сделать. Всеми окнами, отображающимися в Task Sequence управляет объект Microsoft.SMS.TSProgressUI, а за отображение прогресс-бара отвечает метод ShowActionProgress. Из всех перечисленных атрибутов метода нас интересуют последние три — pszActionExecInfo, uActionExecStep и uActionExecMaxStep. Первый атрибут отвечает за надпись, отображаемую в нижней части окна, второй — за номер выполняющегося шага, последний — за максимальное количество выполняющихся шагов. Вот самый простой пример применения данного метода:


Set oShell = CreateObject("Wscript.Shell")
Set oWMIcimv2 = GetObject("winmgmts:root\cimv2")
Set oTSProgress = CreateObject("Microsoft.SMS.TSProgressUI")
Set oTSEnvironment = CreateObject("Microsoft.SMS.TSEnvironment")
Set cLogicalDisks = oWMICimv2.execquery("Select * From Win32_LogicalDisk Where DriveType = 3 and DeviceID != 'X:'")
sOrgName = oTSEnvironment("_SMSTSOrgName")
sTaskSequenceName = oTSEnvironment("_SMSTSPackageName")
sCustomTitle = oTSEnvironment("_SMSTSCustomProgressDialogMessage")
sCurrentAction = oTSEnvironment("_SMSTSCurrentActionName")
iStep = CLNG(oTSEnvironment("_SMSTSNextInstructionPointer"))
iMaxStep = CLNG(oTSEnvironment("_SMSTSInstructionTableSize"))
sActionExecInfo = "Checking disk "
iActionExecStep = 0
iActionExecMaxStep = cLogicalDisks.count
For Each oLogicalDisk in cLogicalDisks
iActionExecStep = iActionExecStep + 1
Call oTSProgress.ShowActionProgress(sOrgName, sTaskSequenceName, sCustomTitle, sCurrentAction, iStep, iMaxStep, sActionExecInfo & oLogicalDisk.DeviceID, iActionExecStep, iActionExecMaxStep)
Call oShell.run("CHKDSK.EXE " & oLogicalDisk.DeviceID & " /R /F /X", 0, true)
Next

Данный скрипт выполнит проверку всех дисков выводя информацию в прогресс-бар OSD. С помощью нехитрого Task Sequence мы можем запустить его из WinPe.

Task Sequence

Вы можете использовать данный пример для чего угодно — копирования, выполнения каких либо операций обслуживания, областей применения масса.

Реклама

Детали bobgreen84
System Center Products Specialist

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: