Build and Capture Windows 8 Consumer Preview with ConfigMgr 2012 - Sysprep'ing the machine failed, hr=d0000004

Normally I use MDT to perform the build and capture task.

I thought I would try ConfigMgr 2012 to build and capture Windows 8 Consumer Preview Build 8250.

I created a simple task sequence which comprised of the following steps

  1. Restart in Windows PE
  2. Partition the Disk
  3. Apply Operating System
  4. Apply Windows Settings
  5. Setup Windows and ConfigMgr
  6. Prepare ConfigMgr Client for Capture
  7. Prepare OS
  8. Capture the Reference Machine

Every thing goes smoothly until the following error is displayed

image

 

Straight away I dive in the the smsts.log on the machine I am trying to deploy and capture Windows 8 to.

I see

Successfully completed the action (Prepare Configuration Manager Client) with the exit win32 code 0    TSManager    15/06/2012 13:28:04    2044 (0x07FC)

A bit further down I see

=======================[ OSDPrepareOS.exe ] =======================    PrepareOS    15/06/2012 13:28:04    2840 (0x0B18)
Command line: "osdprepareos.exe" /activate:false /bmsd:false    PrepareOS    15/06/2012 13:28:04    2840 (0x0B18)
Initialization successful    PrepareOS    15/06/2012 13:28:04    2840 (0x0B18)
Local machine is not a domain controller.    PrepareOS    15/06/2012 13:28:04    2840 (0x0B18)
System partition is NTFS    PrepareOS    15/06/2012 13:28:04    2840 (0x0B18)
Verified deploy tools are present.    PrepareOS    15/06/2012 13:28:04    2840 (0x0B18)
Local machine is not part of a domain    PrepareOS    15/06/2012 13:28:04    2840 (0x0B18)

Then I see

Failed to prepare the system partition for staging. Wait Callback (Error: D0000004; Source: WinHTTP)    PrepareOS    15/06/2012 13:28:05    2840 (0x0B18)
BootImage::PrepareForStaging(sLocalDataPath), HRESULT=d0000004 (e:\nts_sccm_release\sms\framework\tscore\bootimage.cpp,683)    PrepareOS    15/06/2012 13:28:05    2840 (0x0B18)
TS::Boot::BootImage::StageBootImage(sPkgID), HRESULT=d0000004 (e:\nts_sccm_release\sms\client\osdeployment\prepareos\prepareos.cpp,925)    PrepareOS    15/06/2012 13:28:05    2840 (0x0B18)
Failed to pre-stage WINPE image, hr=0xd0000004    PrepareOS    15/06/2012 13:28:05    2840 (0x0B18)
PreStageWINPE(m_bDebug), HRESULT=d0000004 (e:\nts_sccm_release\sms\client\osdeployment\prepareos\prepareos.cpp,1366)    PrepareOS    15/06/2012 13:28:05    2840 (0x0B18)
Unable to sysprep the machine, hr=d0000004    PrepareOS    15/06/2012 13:28:05    2840 (0x0B18)
pCmd->Sysprep(bActivate, bMsd), HRESULT=d0000004 (e:\nts_sccm_release\sms\client\osdeployment\prepareos\main.cpp,270)    PrepareOS    15/06/2012 13:28:05    2840 (0x0B18)
Sysprep'ing the machine failed, hr=d0000004    PrepareOS    15/06/2012 13:28:05    2840 (0x0B18)

 

So it has obviously failed on the Sysprep part

To be honest, I was in a bit of a hurry, so have not fully investigated the cause, also Windows 8 is still in BETA

The work around I used consists of the following (a bit old fashioned)

Changed the task sequence so it just deploys Windows 8 but does not attempt to capture it, once Windows 8 had been deployed, log on with the local administrators account, open a command prompt and navigate to c:\windows \system32\sysprep and execute sysprep.exe

 

image

 

I want the machine to shutdown after Sysprep has finished.

Once the machine has shutdown, I created a task sequence that will boot the SysPrep’d computer into WindowsPE.

Open up a command prompt and map a drive back to the ConfigMgr 2012 site server where the appropriate version of imagex is available, it will be installed under the ‘Windows AIK\Tools’ directory structure.

 

The run the following command, this will capture a image called ‘Windows8.wim’ and place it in the root of the mapped drive Z:

image

Capture in progress

image

Capture complete

image


Once completed you can move the wim file to a relevant share/directory, import it in the the Operating System Images node. It can then be use to deploy Windows 8