Pre-staging Content during OSD

1E Nomad

In System Center Configuration Manager Operating System Deployment, content can be obtained in one of two ways for network deployments. The first way is to configure the Task Sequence Deployment to “Download all content locally before starting task sequence”. There are a few downsides to this option – it is only available to ConfigMgr clients (sorry, no media or PXE), and second, it downloads ALL packages referenced in the Task Sequence. The second way is to configure the Task Sequence Deployment to “Download content locally when needed by running task sequence”. As the Task Sequence engine gets to a step that has referenced content, it will download the content prior to running the step. This effectively a just in time process. What is missing is the ability to download specific items during the Task Sequence ahead of actually needing them.

Rewind – several years ago (back in the ConfigMgr 2007 days) I was working on an OSD project. While we were brainstorming ideas on what we could do to make the process better and more resilient, I came up with the idea of staging content during a running Task Sequence. The thought was, if we know that we were going to need something (like the WIM, Driver Package, CM Client, etc.), wouldn’t it be good if we could get it before we started the main execution phase of the Task Sequence. Instead of waiting until we were in WinPE (after the disk had already been wiped) and experienced a failure (maybe a network glitch), we could be proactive by staging only the critical content ahead of time. This way, we can get past the point of no return in the Task Sequence, minimize failure and have a useable system with at least the new OS installed. This is when the concept of Pre-staging Content Using Nomad was born.

This feature first appeared in 1E Nomad version 4.1 for ConfigMgr 2007. It has been in every version of Nomad since that time and this functionality extends both ConfigMgr 2007 and ConfigMgr 2012/R2. To make things easy, there is a custom action in the Task Sequence editor called Pre-stage Content Using Nomad. Simply add the step to the Task Sequence and select the Packages that are required during WinPE and OOBE.

01 Pre-stage

The core OSD packages are: WIM, Boot Image, CM Client, USMT, MDT Toolkit, MDT Settings, and Nomad Agent (as well as any additional scripts used in the Task Sequence). Since this is a Task Sequence step that can be configured with Options, Driver Packages can be selectively pre-staged based on the target system. In other words, it is as simple as adding an additional step to pre-stage the correct Driver Package using the same condition that is used later in the Task Sequence to apply the Driver Package. The Pre-stage section of the Task Sequence might look like the following for environments with HP systems:

02 Pre-stage

The Pre-stage step works in WinPE as well as a full OS, so pre-staging can be done under a Baremetal scenario as well as the Refresh scenario (and very soon the Upgrade scenario for Windows 10). The Pre-stage concept is also helpful when needing to perform OSD Refresh over WiFi. Since there is not any WiFi support in the current version of WinPE, simply pre-stage the necessary content before rebooting into WinPE.

If you have used this feature and like it or have other suggests, let me know!

Originally posted on https://miketerrill.net/