POLL: POWERSHELL VS. GUI - DO YOU WANT TO BE A DEVOP OR AN ADMIN?

Windows deployment preflight checks – Part 1: Introduction

Before you deploy a new Windows image, you should always perform a few preflight checks. This article gives an overview of the topic. In the next article, I discuss a script that helps you with this task.

A picture of Mike Taylor By Mike Taylor - Thu, March 1, 2012 - 2 comments

Mike Taylor has been working in IT for 12 years. He is a Windows administrator, scripter and OS deployment engineer based in London.

What are preflight checks?

When you start a Windows deployment, once you are happy with the image it’s time to deploy it. However, there are quite a few obstacles to overcome that can stop your deployment at the first hurdle. For instance, what if the target disk is encrypted? Deployments only work with NTFS owing to the use of WinPE, so deployment will fail unless you format the disk. There is a whole list of prerequisites to think about. The main areas to address before deploying an OS to a machine are listed in Table 1 – Requirements overview.

Check Action/task Expected result
1 Hardware verification Hardware meets minimum specification
2 OS verification OS is valid
3 Domain verify Meets authorized domain

Table 1 – Requirements overview

Check 2 is a good example of avoiding disaster. If you were using SCCM and someone clicked the wrong button and advertised your XP deployment to all machines, including servers, check 2 suddenly becomes a lifesaver.

Check 1, hardware verification, covers the biggest list of potential obstacles. A sample list of hardware checks you can make is shown in Table 2 – Detailed hardware requirement checks.

Check What to check Why to check Avoids this risk
1 Vendor (make) Limit the deployment to machines the organization supports Building a visitor/guest laptop
2 Model (is in list) Limit deployment to known hardware models Building unsupported hardware
3 RAM greater than x Some OS versions won’t install Deployment abort if machine is not up to specifications
4 Disk type (HDD is not RAW) Disk has to be NTFS Deployment abort if disk is encrypted or is in bespoke OEM format
4a Disk free space Target disk has free space Data migration failure later
4b Disk total size Target disk is big enough for new OS Deployment failure
4c Disk SMART health Establish target disk is reliable Target disk failure
5 CPU architecture Confirms whether CPU is 32- or 64-bit Building 64-bit onto 32-bit machines
5a Prefer disk in SATA mode BIOS may be set to legacy mode Running Windows on legacy
5b Prefer BIOS boot HDD first! Media builds need to boot off HDD Deployment looping
6 Boot count (MDT) Target may have multiple boot Overwriting the wrong drive
7 AC power (not battery) Laptops need PSU Shutting down of laptop while deploying if battery fails
8 Network Network connect Building over wireless (not a good idea)

Table 2 – Detailed hardware requirement checks

With MDT 2012, Microsoft has introduced the User Driven Interface (UDI) wizard that attempts to prepare machines for deployment running checks. Underneath the new wizard are some VBScripts that check various requirements. Unfortunately, UDI only supports Windows 7 (not XP). So I’ve written my own XP UDI script. The next article shares the script and its design. See this script in action in Figure 1 – Custom UDI for XP deployments.

OSD Preflight checks

Custom UDI for XP deployments

Your question wasn't answered? Ask in the new 4sysops forum!

2 Comments - Leave a Reply

  1. techibee.com says:

    Hardware make and model check is necessary to ensure that image(or build routines) has required drivers for hardware. But I feel it is less useful for mitigating risk of building guest/visitor laptops with corporate image. One can avoid this by implementing delegation so that only build-administrators will be able to build the computers– no one else.

    Is this UDI on windows 7 uses Vbscripts for verifying the configuration? I wish they move to Powershell :-)

    Thanks for the informative article.

  2. Dustin says:

    You can add your own PowerShell Pre-Flight checks to the UDI Wizard as you please. Just tell it the filename (point to powershell.exe) and give it the parameters (-NoProfile -file….)

===Leave a Comment===