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 )
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
I was inspired Dell’s approach available on their website (http://en.community.dell.com/techcenter/enterprise-client/w/wiki/3583.leverage-sccm-in-dell-factory-part-1-building-your-task-sequence.aspx)
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
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>”
sargs = “”
if num > 1 then
sargs = ” “
for k = 1 to num – 1
anArg = args.Item(k)
sargs = sargs & anArg & ” “
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…
After the Machine start in my corp environment the TS continues from “Join … to corp domain step”