IT Consultant Everyday Notes

Just some problems/solutions storage

SCCM: Prepare a standalone media for an external Vendor

The recommended way from Microsoft in this case is to prepare a pre-staged media for the Vendor. In this case your gold image, necessary drivers and (for SCCM 2012 SP1) necessary Applications will be cached on a computer when the Vendor prepares it for you. On Client side the Computer starts, looks for SCCM and execute an available Task Sequence, if the TS needs a package a local cache can be used instead of connection to the Distribution Point. And that works just great if you are ok to wait while drivers and apps will be installed.

Unfortunately SCCM 2007 cannot cache Applications in pre-stage media (workaround – put it in SCCM Client Cache folder manually Smile )

One of my Clients wanted to short installation time on his end as much as possible. In this situation we decided to you a Standalone media containing drivers and apps. Such media can be send to a Vendor who will boot from it and install everything at once.


1. Standalone media does not know about Collection variables, so it is not too dynamic. For example if you use different collections for English and French languages with corresponding variables for each language you may either hardcode the variables during standalone media creation or create a script to populate the variable dynamically

2. Standalone media assumes there is no connection to the corp net and you need to figure out how to join the computer to the domain after it will be shipped to you.

3. You cannot install necessary updates on Vendor side Sad smile


I was inspired Dell’s approach available on their website  (

It suggests to bring the target machine in a Workgroup, install all drivers and apps and power the machine off in the middle of the TS. As soon as the machine is Off it is ready to be shipped to the Client. At the Client side the machine is started again and the TS continues with connection to the Corpnet (so you can bring it to the domain, install updates etc…).

Sound nice, the only problem was how to stop the machine just in time. We must stop it when the machine is rebooting, I guess ideal time is during POST.

Simple Reboot step does not work because if we have multiple machines we cannot relay on Vendor tech shutting them down in time. If we set longer dialog time on Reboot step that did not help, because there is no “ok” button on the dialog window and the tech need to wait until the machine goes to reboot itself.

Dell uses their scripts to resolve it, but I do not have access to them, so I needed to master my own structure.

It looks like a simple popup dialog would be ok, but since TS is working under System account I never see the popup Sad smile

TO resolve the issue I use two scripts:

The first one invis.vbs (found somwhere on Internet, sorry cannot find source anymore) is just a wrapper to start the second one dialog.vbs, showing the dialog box.

Here are both scripts:


set args = WScript.Arguments
num = args.Count

if num = 0 then
    WScript.Echo “Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>”
    WScript.Quit 1
end if

sargs = “”
if num > 1 then
    sargs = ” “
    for k = 1 to num – 1
        anArg = args.Item(k)
        sargs = sargs & anArg & ” “
end if

Set WshShell = WScript.CreateObject(“WScript.Shell”)

WshShell.Run “””” & WScript.Arguments(0) & “””” & sargs, 0, true


MsgBox “The system is ready to be shipped to a Customer. Click ok and power off when reboot.”

I put both scripts in a folder and created an SCCM package (without any Program). This Package I used in the TS I generated a Standalone Media from:


Here is the user (Vendor Tech) experience:


dialog box pops up and waits for the Tech click Ok. After that the Machine goes to reboot and can be shut off as soon as enters POST. The only problem I have is the popup is BEHIND the TS Progress bar… Smile

After the Machine start in my corp environment the TS continues from “Join … to corp domain step”

One response to “SCCM: Prepare a standalone media for an external Vendor

  1. Brian Gonzalez October 30, 2014 at 12:12 am

    You can kill the ProgressUI.exe and then use ServiceUI.exe to trigger an HTA with the prompt your after. I use this method when displaying all of my Task Sequence variables via an HTA:

    TriggerHTA.bat START=================================
    “%~dp0ServiceUI.exe” -process:TSProgressUI.exe “X:\Windows\System32\mshta.exe” “%~dp0DisplayTSVariables.hta”
    TriggerHTA.bat END=================================

    Note: ServiceUI relies on you using full paths, hence the need for the %~dp0 in my batch script.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: