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

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.

Share this

Related Posts

Next Post »

7 commentaires

1 février 2018 à 17:24 delete

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:

Thank you very much.

1 février 2018 à 17:54 delete

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 :-)

2 février 2018 à 07:36 delete

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.


6 février 2018 à 22:10 delete Ce commentaire a été supprimé par l'auteur.
7 février 2018 à 16:50 delete

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

26 juin 2018 à 23:47 delete

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))

27 juin 2018 à 00:25 delete

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?