A WordPress.com site dedicated to System Center and Cloud Management

Archive for the ‘MDT/ADK’ Category

Using WDS to Deploy SCCM Images without PXE-Enabled DPs


I ran into this scenario recently while at a client’s site, working with SCCM to create a server build task sequence.

Let’s say you have SCCM installed, including a CAS, multiple Primary Sites and Secondary Sites, and many Distribution / Management Points. However, despite having Distribution Points in your environment, you do not have them PXE-enabled. Instead, you are using a standalone Windows Deployment Services (WDS) server to handle/manage the PXE-boot process.

Now, the second part of the scenario. In SCCM, we have MDT installed and integrated. Therefore, we are using not the “normal” Boot Images created by the installation of SCCM, but rather the MDT Boot Image.

So, to sum up: SCCM Distribution Points without PXE enabled, using the MDT Boot Image, and using WDS standalone.

So, here’s the issue. IF you take the MDT Boot Image from SCCM, and upload it into WDS as a Boot Image, you encounter an issue. When you system PXE Boots, everything seems to be OK, and the boot image starts to load. First it will show “Initializing hardware devices…”, then it will show “Windows is starting up…”. Finally, it will show “Preparing network connections…”, and then BAM! Nothing! And the system will restart, just to repeat the same process over again.

If you enable Command Line support in the Boot Image, you can press F8 and be able to check the Log files to see what’s going on. So, if you press F8, and navigate to X:\SMSTSLog\, you will see a .Log file called “SMSTS.log”. Open it in Notepad (by typing “notepad” in the command line, since we don’t have the CMTrace.exe utility available to us). In the Log file, scroll to the bottom, and you should see a entry that says: “Failed to download PXE variable file. Code(0x00000001).”

SMSTS

Now, if you search online for a solution, most posts will mention checking drivers (usually NIC drivers). But in my case my VM was getting an IP Address, therefore it’s not a NIC driver issue.

Well, thanks to some of my co-workers, they pointed me to the following website: http://www.deployvista.com/Blog/JohanArwidmark/tabid/78/EntryID/54/Default.aspx. This article refers to an older version of SCCM, but is still applicable with SCCM 2012. Additionally, for applicability/clarity, the information taken from the above listed article has been re-written/worded, and includes screenshots.

Background Information

When you add the Distribution Point (DP) role to a system managed by SCCM, and enable the “PXE support for client’s” option, SCCM will install (if not already installed as a Role/Feature) the Windows Deployment Services (WDS) server role. This makes is difficult to co-exist with other Boot Images, like the MDT Lite Touch boot image, on independent/standalone WDS servers.

With SCCM, you can generate WinPE Boot Images for Operating System Deployment (OSD). However, the issue is using a standalone WDS system which is not managed by SCCM to provide the PXE boot option on the network, with an SCCM DP server where the OSD content exists (and where the boot image refers to).

SCCM Boot Media Information

When an SCCM generated Boot Media is used, there are additional configuration files contained within the ISO, most importantly the TSMBootStrp.ini and Variables.dat files. These files are present within the SCCM generated boot media, but not actually contained within the .WIM file itself. The issue is further complicated due to the fact that you cannot add an ISO boot media file into WDS, but rather, require a .WIM file.

The solution is to extract the contents of the SCCM generated boot media ISO file, and add the missing configuration files into the Boot Image .WIM file. After these files have been added into the Boot Image, this .WIM file can be added into WDS, and thus made available to PXE boot.

Modifying a WinPE Boot Image (WIM) File to Include SCCM Boot Media Files for Standalone WDS

This section provides step-by-step instructions on how to extract SCCM Boot Media content, and insert/inject it into a Boot Image .WIM file.

Create SCCM Boot Media

Launch the SCCM Console, and navigate to Software Library > Operating Systems > Task Sequences.

Build TS - 01 - Task Sequences

Right-click on the Task Sequences section heading, and choose Create Task Sequence Media.

SCCM Boot Media - 02 - Create Task Sequence Media

On the Select Media Type page, choose Bootable Media, then click Next.

SCCM Boot Media - 03 - Select Media Type

On the Media Management page, choose Dynamic Media, then click Next.

SCCM Boot Media - 04 - Media Management

On the Media Type page, choose CD/DVD Set, provide a location and filename, then click Next.

Note: The path does not need to be a UNC patch, and can be a local drive (i.e. C:\). Also, the Filename provided must end with the “.ISO”.

SCCM Boot Media - 05 - Media Type

On the Security page, select the ‘Enable Unknown Computer Support’ option. You can also choose to password protect the media, but this is not required. Accept all other default selections as-is, then click Next.

SCCM Boot Media - 06 - Security

On the Boot Image page, click Browse and select the appropriate Boot Image, and Distribution Point. Then click Add and select an available Management Point. Once all 3 fields have been entered, click Next.

SCCM Boot Media - 07 - Boot Image

On the Customization page, accept the defaults, and click Next.

SCCM Boot Media - 08 - Customization

On the Summary page, review the selections made, and then click Next.

SCCM Boot Media - 09 - Summary

On the Completion page, click Close.

SCCM Boot Media - 10 - Completion

You should now have an .ISO file at the location you specified during step 5.

Extract SCCM Boot Media ISO Contents

At the location of your ISO file, use a ZIP program (i.e. 7zip), and extract the contents of the .ISO file. This should create a folder, with the same name of your ISO file, containing all the files (i.e. C:\SCCMBootMedia\).

Note: Ensure that you make note of where the ISO extracted folder contents is located, as this will be needed in the next section.

SCCMBootMediaExtract

Mount Boot Image WIM File and Inject SCCM Boot Media Files

To be able to complete this step of the process, you must have the Windows Automated Installation Kit (AIK) installed. It is important to note that this tool is not compatible with Windows XP, and therefore must be installed/used on a newer Operating System (i.e. Windows 7/8.x). This document will not detail on how to install the AIK, as this is a straightforward process.

Note: For Windows 8.x, the AIK has been changed/re-named to the “Windows Assessment and Deployment Kit (ADK)”.

Important: For simplicity, it is recommended to copy your Boot Image (.WIM) file to the same location that you extracted the SCCM Boot Media (.ISO) to.

Start this part of the process by launching the Deployment and Imaging Tools Environment.

Launch Deployment and Imaging Tools Environment

Within the command prompt, type the following command:

ImageX /MountRW <index#>

Example: ImageX /MountRW C:\BootImage.WIM 1 C:\BootImageMountLocation

This will now allow you to explore (and thus add) the content contained within the Boot Image WIM file, from the Mount Location you specified, via File Explorer.

MountBootImage

Navigate to the location that you extracted the SCCM Boot Media ISO file, and copy the \SMS\Data folder into the WIM Mount Location.

Example: C:\SCCMBootMedia\SMS\Data to C:\BootImageMountLocation\SMS\

SCCMBootMediaExtract

MountedBootImage(Pre)

MountedBootImage(Post)

Return to the Deployment and Imaging Tools Environment command prompt, and type the following command to unmounts the image (WIM) file, and commit the changes applied (i.e. the files copied into the directory).

ImageX /UnMount /Commit

Example: ImageX /UnMount /Commit C:\BootImageMountLocation

UnMountBootImage

Copy the updated Boot Image .WIM file (which should now have an updated timestamp) to the WDS server, launch the Windows Deployment Services console, select the Boot Images folder, and click Action > Add Boot Image.

WDS - Add Boot Image

On the Image File page, click Browse, and navigate to the modified .WIM file that was copied to the server, then click Next.

WDS - Add Boot Image - File Location

On the Image Metadata page, provide an Image Name and Image Description, then click Next.

WDS - Add Boot Image - Image Metadata

On the Summary page, review the information presented, then click Next.

WDS - Add Boot Image - Summary

On the Task Progress page, once the operation has completed, click Finish.

WDS - Add Boot Image - Task Progress

Back in the WDS console, under Boot Images, you will now see your Boot Image listed which will be used for PXE booting.

WDS - Add Boot Image (POST)

Now when you PXE boot your system, and boot into WinPE, your system will be able to communicate with SCCM, and continue the rest of the process (running Task Sequences).

 

As always, if this post helped you in any way, and you would like to show your appreciation, please rate it and comment on it. Also, feel free to contact me (via the About Me page) with requests for future articles.

Advertisements

Windows Server 2012 R2 Generation 2 VMs and x86 MDT Boot Media = Boot Failure!


I came across this scenario today, when creating a video walk through on using the Microsoft Deployment Toolkit (MDT) 2013, which can be found on my MiCloud YouTube channel: http://www.youtube.com/user/SCMiCloud.

When using the Microsoft Deployment Toolkit (MDT) to build and capture a reference image, part of the process is to create Boot Media. To use MDT to build and capture an image, you need to mount the boot media ISO to your Virtual Machine (VM).

Normally, when creating and using boot images (with MDT or SCCM), I usually use the x86 version of the media and not the x64. Why, you might ask? This is because x86 is more versatile and more widely compatible than x64 media. 

However, in Windows Server 2012 R2, when you create a new Virtual Machine, you can choose a Generation for the VM.

VM Generation

In my case, I was trying to build and capture a Windows 8.1 reference image. Therefore, I choose the Generation 2 option. Note that it states: “Guest operating systems must be running at least Windows Server 2012 or 64-bit versions of Windows 8”. Therefore, you would think that you could use x64 bit boot media with these systems.

So, as stated above about x86 versus x64 boot images, I mounted the x86 version of the MDT Boot Media, and started the Virtual Machine, preparing to build and capture an image. Except, no deal! Boot Failed! Weird.

VM Boot Fail

After trying many different things, including re-creating the VM, changing the network adapter (from current to legacy), re-generating the Boot Media, etc.

Then, for reasons I cannot recall, I decided to try the other Boot Media. I mounted the x64 version of the Boot Media, restarted the VM, and bam! The MDT boot media started to load without issue.

VM MDT Boot

I am not 100% sure why this is, but apparently if you are using Hyper-V, and in particular a ‘Generation 2’ Virtual Machine for building and capturing a reference image (either through MDT or SCCM), you will need to use 164-bit Boot Media instead of the x86.

Hope this helps someone if they encounter this issue.

Working With The Microsoft Deployment Toolkit (MDT) 2013 – Part 7: Build And Capture A Reference System


In our last post we finished creating the Boot Media to use when building and capturing a Windows image.

Now we are going to create use the Boot Media and (finally) build and capture a Windows image.

Build And Capture A Reference System

Take the Boot Image that we created (found in \Boot). We are going to use the “LiteTouchPE_x86.iso” because the x86 media is more widely compatible (not everything is compatible with x64).

We are going to use a Virtual Machine (VM) for the reference system.

Start by mounting the ISO to a blank Virtual Machine, then start the Virtual Machine. You will be presented with the following prompt. Press any key so the Virtual Machine (VM) will boot from the Boot Media.

Build And Capture 01

Eventually, though it may take a while depending on your network, the Microsoft Deployment Toolkit wizard will appear. When it does, click on the “Run the Deployment Wizard to install a new Operating System” option.

Build And Capture 02

You will be presented with a dialog for User Credentials. These credentials must be able to access the MDT server, as this is where the image file will be captured to. Supply the credentials and then click OK.

NOTE: If you MDT Server is in a domain, you can use domain credentials, but what if it isn’t? What if your MDT server is in a Workgroup (like mine is)? In that case, in the “Domain” field, you would just use the server’s name.

Build And Capture 03

On the Task Sequence screen, choose the appropriate task sequence to run, then click Next. In our case, this is the Task Sequence we created (see Working With The Microsoft Deployment Toolkit (MDT) 2013 – Part 5: Create A Task Sequence).

Build And Capture 04

On the Computer Details screen, you can provide a Computer Name (though it is not required) but do NOT choose “Join a domain”; just accept the default of “Join a workgroup“, and then click Next.

Build And Capture 05

On the Move Data and Settings screen, since we are not migrating any user’s data, choose the “Do no move user data and settings” option, and then click Next.

Build And Capture 06

On the User Data (Restore) screen, again since we are not migrating users, choose the “Do not restore user data and settings“, and then click Next.

Build And Capture 07

On the Product Key screen, you can supply a key if required, then press Next. This depends on your environment/organization, and if you have a Multiple Activation Key (MAK), or if your organization uses a Key Management System (KMS). For this lab example, we are going to choose “No product key is required.”

Build And Capture 08

On the Locale and Time screen, make the appropriate adjustments required, and then click Next.

Build And Capture 09

On the Administrator Password screen, provide a password for the LOCAL Administrator account, then click Next.

IMPORTANT: I need to emphasize that this is for the LOCAL Administrator account. This is the local non-domain account. This means that if you are using this image in a domain environment, and the system looses its trust with the domain, your IT department can use this local account to log into the system and re-join/re-add it to the domain.

Build And Capture 10

On the Capture Image screen, choose the “Capture and image of this reference computer“, give the file a unique name, and then click Next.

Build And Capture 11

On the Ready screen, review the information displayed, and then click Begin.

Build And Capture 12

The process will begin by installing the Operating System we specified in our Task Sequence. Time to sit back and watch.

Build And Capture 13

Eventually the Operating System will be installed. However, it may look like nothing else is happening (at least in reference to capturing Windows 8). Navigate to the Desktop.

Build And Capture 14

On the Desktop you will see that the Task Sequence is continuing, and installing the Application (in this example Microsoft Office) we specified.

Build And Capture 15

Once all the steps in the Task Sequence have completed, the final capturing piece will initiate. This starts with SysPrep being executed on the reference system.

Build And Capture 16

Eventually the process will get to the point where it shows “Create WIM”. This may take a while depending on your hardware/network, but will eventually result in the captured image.

Build And Capture 17

Once the capture has completed, click Finish.

NOTE: The Virtual Machine (VM) will automatically restart. We are done our work with it, so you can shut it off.

Build And Capture 18

Back on the MDT Server, navigate to \Captures. In that directory you will now see your captured .WIM file with the name we supplied in the wizard.

Build And Capture 19

Now that we have captured image in a .WIM file, you can use it with your Operating System Deployment tool(s)/process.

Here is a video walk through:

Tag Cloud

%d bloggers like this: