Add the complete progression status to the MDT/SCCM Progress Bar

8 A+ A-

In my two previous posts I shared two differents Metro Design GUI to replace the existing MDT progress bar. In this post, I will customize the existing MDT progress bar in order to view the complete progression of the deployment.
In my opinion one thing is really missing in the existing MDT progress bar, there is  no way to know where we are during the deployment, we don't know how many steps are missing before the deployment is completed.
That's why I decided to customize the progress bar. For that you will have to modify the ZTIUtility.vbs file.

To add this functionnality in SCCM vote for this idea, here.

How it looks like ?

See below the old progress bar and an overview of the new progression status.
As you may noticed, beside of the current step name, you will find now the current step number, total step number and the real time progression percentage. 

How to customize it ?

1 /  Open the ZTIUtility.vbs 
2 / Search the Public Function ReportProgress
3 / Copy and paste the existing function and rename it
4 / In the not renamed function add the part below
5 / Enjoy :-) 
6 / The part below will be added

For now it's only appeared in the progress bar that contains to part as below, it doesn't applied to simple task.

ztiutility 1038659743773025391

Enregistrer un commentaire

8 commentaires

Unknown a dit…

Hi Damien,

After I have modified ZTIUtility.vbs script and updated DPs, as per your advice, the TS is failing now with this error:
......\ZTISCCM.wsf(662, 4) Microsoft VBScript compilation error: Expected statement
Command Line cscript.exe Scrips\ZTISCCM.wsf returned 1

Can you please add more details? Where are you adding the code? at the very beginning of the function? Can I just backup the original ZTIUtility.vbs and not copy the function and just add the modification?
Will appreciate if you can reply to my mail to: oleg.proscurchin@gmail.com

Thank you very much.

Damien Van Robaeys a dit…

It was because of the comment with # I added in my post. It was just for informarion.
Now I replaced it with ' as it's vbscript :-)

Adam Gross a dit…

I am using just SCCM for my Task Sequence and won't be using the ZTIUtility script. I did some testing and wondered if you could use the same framework of your Modal dialogs of your progress bar and progress circle to update the system TSProgressUI.

$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$TSProgressUI = new-object -comobject Microsoft.SMS.TSProgressUI

$CustomActionText = $tsenv.Value("_SMSTSCurrentActionName") + " - Step: " + $tsenv.Value("_SMSTSNextInstructionPointer") + " of " + $tsenv.Value("_SMSTSInstructionTableSize") + " - " + ($tsenv.Value("_SMSTSNextInstructionPointer") / $tsenv.Value("_SMSTSInstructionTableSize") * 100).toString() + "%"

$TSProgressUI.ShowTSProgress($tsenv.Value("_SMSTSOrgName"), $tsenv.Value("_SMSTSPackageName"), $tsenv.Value("_SMSTSCustomProgressDialogMessage"), $CustomActionText, $tsenv.Value("_SMSTSNextInstructionPointer"), $tsenv.Value("_SMSTSInstructionTableSize"))

I just don't understand the childrunspace stuff enough to re-work what you published.

Anyway, just wanted to say thanks and pass this along.


Unknown a dit…
Ce commentaire a été supprimé par l'auteur.
Florem a dit…

Please vote here so this can be implemented in the built-in SCCM task sequence engine.

Anonyme a dit…

This is how I got it to work, for those of you guys that had a hard time understanding the way the author posted the customization for the ZTIUtility.vbs.... (Remember to make a copy of the original)

OK This is how it should look in the ZTIUtility.vbs, look for Public Function ReportProgress and replace with below

Public Function ReportProgress(sMsg, iPercent)

Dim iMaxPercent
Dim oProgress
Dim uStep
Dim uMaxStep

' Variables declaration
Dim uStatus, uStep_Division, uStep_Division_Round, uStep_Percent

' Progression calcul
uMaxStep = CLng(oEnvironment.Item("_SMSTSInstructionTableSize"))
uStep_Division = uStep / uMaxStep * 100
uStep_Division_Round = Round(uStep_Division)
uStep_Percent = uStep_Division_Round & " % completed"
uStatus = oEnvironment.Item("_SMSTSCurrentActionName") & " - " & " Step " & uStep & " on " & uMaxStep & " - " & uStep_Percent

Look for Call oProgress.ShowActionProgress and replace with below

Call oProgress.ShowActionProgress(oEnvironment.Item("_SMSTSOrgName"), oEnvironment.Item("_SMSTSPackageName"), oEnvironment.Item("_SMSTSCustomProgressDialogMessage"), uStatus, (uStep), (uMaxStep), sMsg, (iPercent), (iMaxPercent))

Anonyme a dit…

Well I spoke to soon, it seems to be showing the text information for total Step and percentage 0 % Completed n the (Light Touch Installation) box but is not counting down the steps or percentage number... Damien can you be more specific on your guide, I'm using MDT 8443 does this customization work on this version?

Jérome a dit…

Hi, I have the same problem with my MDT 8450 !!
Have you a solution for this ?

Accueil item


Learn KQL in one month


You want to support me ?

Mes articles en français

Books in French