SCCM OSD: Optimize OS Deployment with Microsoft System Center Configuration Manager


Written by Neil Harrison, Microsoft Premier Field Engineer, based in Canada.


SCCMAs I travel around and talk with various customers and organizations, one of the common things I have found is that people are still having a hard time understanding how to effectively use the Operating System Deployment (OSD) features within Microsoft System Center Configuration Manager 2007 (a.k.a. SCCM).

There is a lot of information out there that already exists about how to utilize OSD but I thought I would add mine to the list as well in the hopes that it will help to make somebody’s life easier when it comes to deploying operating systems within their environment.

This is the first blog in a series to come and this time I’m going to focus only on what SCCM OSD can do for you and your IT infrastructure.

OSD gives us great flexibility in the way that we deploy our Operating Systems and images. I’ll summarize a few of the key things at a high level here and I will write about each one of these items in more detail in upcoming articles.

1. Build and capture of a reference image

OSD gives us the ability to take an install CD (e.g. Windows 7) and use those source files to install a reference image right from scratch. This is a fantastic feature as it allows us to easily automate the process of installing a baseline Operating System. Once the OS is built we can use Task Sequences to customize our “vanilla” OS installation and to re-capture that computer as a reference image for later deployments.

Why is this so great? Once you have the process configured the way you like it, then it allows us to build out a reference computer in a consistent, reliable way that virtually eliminates human error. It will also save hours of frustration from IT staff that will no longer have to build a reference computer manually each time a change is made or testing a new deployment fails.

2. Bare-Metal deployments (using PXE or self-contained bootable media)

When we say “bare-metal” we mean that the computer does not have an existing Operating System installed already. SCCM OSD gives us the ability to deploy an Operating System image to a bare-metal computer in several ways.

  • We can transfer our image to bootable media (such as a DVD, CD or USB drive). This gives us the option to eliminate the network from the equation when imaging our computer which may be an important consideration when dealing with deploying new computers across a slow WAN link.
  • We can transfer just the boot image (Windows PE) to bootable media and allow the computer to communicate with SCCM to determine which Operating System image to deploy.
  • We can also utilize network boot (PXE) to have the computer communicate with the PXE Service point (an SCCM role) to determine which image to deploy.

3. In-place OS upgrade or refresh

We know now that we can use SCCM to deploy an image to a PC that did not already have an OS installed, but what if the computer already had an OS on it. Simple, we can deploy to that too. In fact, it’s very similar to distributing any other software to an existing SCCM client as all we have to do is advertise that Task Sequence to a particular computer.

4. Migration of user state from old PC to new PC

Whether we are imaging a bare-metal machine or performing an upgrade of an existing OS, SCCM gives us the ability to transfer user state from the old PC to the new PC. SCCM allows us to do this using a State Migration Point (another SCCM role) in combination with the User State Migration Tool (USMT).

One of the first questions you might have is “what exactly is defined as user state?”

In terms of USMT, user state can be defined as the following:

  • User data
  • Operating System components
  • Applications

A more thorough explanation of what USMT is capable of can be found here.

5. Complex Task Sequences

In my opinion, Task Sequences are what sets SCCM apart when it comes to OSD.  Task Sequences give us the flexibility to perform a series of steps during deployment that is completely customizable to the needs of the IT organization.

There are already several built-in steps that can be used in Task Sequences, such as the following:

  • Formatting and partitioning drives
  • Installing software applications
  • Installing Software updates
  • Configuring Windows settings
  • Configuring Network settings

And there are many more that come with SCCM out of the box, but for anything that isn’t there we can use a task sequence for running our own scripts as well. This makes the possibilities virtually limitless when it comes to customizing the deployment to suit the needs of any IT organization.

6. Integration with Microsoft Deployment Toolkit (MDT)

Another cool feature of using OSD within SCCM is it allows us to integrate it with the Microsoft Deployment Toolkit. Once we have integrated with MDT, there will be some additional Task Sequence steps that we can use in our deployments to do some pretty cool things such as:

  • Deploy software updates offline
  • Adding Windows 2008 Roles and Features
  • Configuring DHCP / DNS, and much more…

Integrating MDT with SCCM is not mandatory. We can create very complex deployment scenarios just by using the features included with SCCM by default. However, I recommend to everybody that they should at least check out which options are available to them.

I hope this gives a good summary of some of the cool things that OSD can do for any IT organization. Over the next while, I plan to dive in to each area in more depth and provide some examples of how to effectively use SCCM OSD to deploy images.