Monthly Archives: November 2013

WinPE 5.0 will not boot on Hyper-V properly if start-up memory is less then 1024 Mb

Published / by Rens Hollanders / Leave a Comment

Since Windows 8.1 is here, and I’m a deployment enthusiast who likes to work with new things, I needed to upgrade my own system to Windows 8.1.

After this was complete I immediately installed the Hyper-V client role on my machine and created a Windows Server 2012R2 with MDT 2013 and Windows Assessment and Deployment Kit 8.1 for Windows 8.1 and Windows Server 2012R2.

During the installation of the Windows Server 2012R2 in Hyper-V I received the following error: “Error code: 0xE0000100

figure 1.1: Windows Server 2012R2 installation error

W2012R2_error

Later on it appeared to me that addressing less then 1024 Megabytes of memory, caused this error.

After my server and MDT 2013 where succesfully installed, I wanted to do some deployment testing using one of my VM’s which I have configured as following:

figure 1.2: Hyper-V Machine Configuration – Memory

W2012R2_hyper-v_config

Since I’m only using Hyper-V for my own lab/test environment and my client machine has 16 Gb of RAM memory, I always check the “Use Dynamic Memory for this virtual machine” checkbox, thinking that if my virtual machine needs more memory then 512 Mb, it will claim it by itself!

By increasing the memory configuration in Hyper-V for this particular virtual machine from 512 Mb to 1024 Mb the installation error of Windows Server 2012R2 was resolved, which got me thinking…

If Windows Server 2012R2, Windows 8.1 (which has been released at the same time with these two operating systems) and WinPE 5.0, all have the same kernel, increasing the memory from 512 Mb to 1024 Mb on a virtual machine which I’m going to to use for MDT deployments should solve my problem that WinPE 5.0 stalls during boot, and shows no MDT wizard screens within WinPE, and my assumption was correct

So, if you encounter this on your own lab environment, or using WinPE 5.0 on Hyper-V, then make sure the virtual machine you are using has at least 1024 Mb of startup memory available!

Almost weekend! Cheers! 😀

MDT 2013 – Deploy HP Elitepad 900 using the HP Expansion Jacket, HP Dockingstation, MDT2013, WinPE 5.0 and ADK 8.1

Published / by Rens Hollanders / 4 Comments on MDT 2013 – Deploy HP Elitepad 900 using the HP Expansion Jacket, HP Dockingstation, MDT2013, WinPE 5.0 and ADK 8.1

Well… that’s a mouth full, but I couldn’t describe it better any other way 🙂 Because that’s what I’m doing right now!

In this ‘tutorial’, I will explain the steps I did to achieve a basic MDT LTI deployment based on:

  • MDT Lite Touch Deployment
  • FAT32 Formatted USB Bootable WinPE 5.0 stick
  • Deploy HP ElitePad 900 with all drivers installed working out-of-the-box

For a new project I’m working for a major health care facility which are going to use approx. 800 HP Elitepad 900 tablets, who will be running not the stock Windows 8, but the recently released Windows 8.1.

Currently I’m in testing phase so I’ve got a nice setup at home, running some VM’s, a connection to my deployment share and of course a HP Elitepad 900 tablet, with HP Expansion Jacket and HP Dockingstation

To get things going I first installed a MDT 2013 dedicated machine, with the newly released Windows ADK 8.1 which brings us support for Windows 8.1 and Server 2012R2.

Then I recovered the HP Elitepad 900 which was already used for some testing, back to factory settings and started the whole operation.

For the following weeks, I will try to keep track of the most important things I encounter and share my experiences with you all.

The first thing I had to do is create a driver folder structure in MDT which makes sense (at least for me it does).

figure 1.1: Deployment Share Driver folder structure

DriverStructure_ElitePad_900

As you can see I created several additional driver folders parenting in the WinPE folder, this is all for driver manageability.

HP offers perfect support when it comes to driver packs for the various WinPE environments, so I have downloaded all available packs and imported them into MDT.

The drivers of the HP ElitePad 900 came from the following sources:

HP Website

Microsoft Windows Update Catalog

Extraction of the following HP executable, which can be downloaded from the HP website listed above: “.\sp64292\x86_Win8.1\Driver – Firmware and Chipset\HP\sp63851

Keep in mind you need to extract the SP64292 file AND the SP63851, when all drivers are extracted, together with all other HP ElitePad 900 drivers, target the “Import Drivers” step to the parenting folder which possesses all drivers.

When all drivers are imported, it should look something like this

figure 1.2: HP ElitePad 900 drivers

ElitePad Drivers List

Because the HP ElitePad 900 also has touchpad (which actually works in WinPE IF you embed this into the boot image) drivers and other specific drivers, I targeted these drivers specifically in a separate folder.

With these folders, I have created selection profiles. These selection profiles target individual (driver) folders and present only the content that is residing in that folder during a certain step in the task sequence. This way I have managed to create a WinPE x64 and x86 folder, and I can target these folders individually when generating the boot images for x64 and x86 deployments.

Figure 1.3: Selection Profile Properties

SelectionProfile_ElitePad_900_WinPE_x86

Makes sense right? Each selection profile targets a different WinPE platform folder

figure 1.4: Overview of Selection Profiles

SelectionProfile_ElitePad_900

How this looks on the deployment share properties?

figure 1.5: WinPE x64 Properties

DepShareProperties_x64

figure 1.6: WinPE x86 Properties

DepShareProperties_x86

Next we can have a look at targeting the drivers for the HP ElitePad 900 in a decent manner. (Johan Arwidmark has described a new driver management approach for MDT 2013 Lite Touch, read it here).

First I have executed the following ‘query’, on the HP ElitePad 900 in a command prompt:

wmic computersystem get model“, which showed the following result

figure 1.7: Result of query

wmic HP Elitepad 900

Since we have imported the drivers of the HP ElitePad 900 in a earlier stage, the remainder of what we need to do is modify the “Inject Drivers” step in the task sequence to target only the drivers for the HP ElitePad 900. So open up the deployment task sequence, and advance to the step “Preinstall\Inject Drivers”, and select the driver Profile matching the HP ElitePad 900

figure 1.8: Inject Drivers based on Selection Profile

InjectDrivers

Now to make sure that these drivers are only applied if the model equals the HP ElitePad 900 our little query comes in handy

figure 1.9: WMI Condition on Inject Drivers step

DriverCondition

The exact WMI query used is: ” Select * FROM Win32_ComputerSystem WHERE Model like “%HP Elitepad 900%” ” (without the two “” at both ends, that’s just me explaining the query 😉 )

The next thing we need to configure is disk partitioning of the HP ElitePad 900, since it’s a UEFI based machine, it uses GPT, so advance to the step: “Preinstall\New Computer Only\Format and Partition Disk” and change the disk type from: Standard (MBR) to GPT

figure 1.10: Format and Partition Disk GPT

GPT

Click Apply and OK.

Basically we are ready to perform a deployment test, and that’s what I have done during the writing of this blog, to see the following results:

Figure 1.11: Device Manager OK! (no unknown devices left) and Deployment Finished successfully!

HP Elitepad 900 Device Manager

Also what we can see is that by selecting the GPT Disk type, during deployment the GPT partitions have been created automatically.

figure 1.12: Disk Management GPT Scheme

diskmanagement

This concludes my little tutorial of how to deploy Windows 8.1 to the HP ElitePad 900.

In the upcoming period I’m going to:

  • Configure the Default User Profile
  • Configure the start screen with the Start-Layout PowerShell command
  • Configure Bitlocker
  • Configure Direct Access
  • Configure and tweak Windows 8.1 wherever it is needed
  • Configure the LTI deployment furthermore so that it becomes fully automated just like ZTI 🙂
  • Configure RES Automation Manager and RES Workspace Manager for automation and user workspace management

And of course the test environment will be mitigated to a Windows Server 2012R2 with WDS and PXE Boot enabled to deploy these tablets via PXE, and we will see how that goes!

I’ll leave you all with a little package that might become handy when you are going to approach the same challenge. In the attached zip file you will find:

  • BDD.log_properties which are quite useful to determine al kinds of conditions, queries and variables
  • A Driver list which is an export of my HP ElitePad 900 driver folder, so you can verify if all drivers are present
  • All screenshots used in this tutorial

zip
HP_ElitePad_900.zip

Keep on automating my young padawans 😀

! Any general reconsideration’s to keep in mind are:

  • Format the bootable USB drive with FAT32, NTFS is not read by the HP ElitePad 900
  • When staging a HP ElitePad 900, make sure a USB keyboard is attached if you are performing an LTI deployment, yes touch works, but that doens’t mean you can type in WinPE!!!

 

MDT 2012 will HideShell=YES and LTISuspend.wsf work together in one task sequence?

Published / by Rens Hollanders / 6 Comments on MDT 2012 will HideShell=YES and LTISuspend.wsf work together in one task sequence?

Short answer: YES 😀

Recently I have created a Build Task Sequence for a customer where it was needed to do some checks upfront, before the operating system, running on a virtual machine would be captured to a WIM file.

As some of you might know, the LTISuspend.wsf script, residing in the SCRIPTROOT of MDT (DeploymentShare\Scripts), can be called after the ‘State Restore’ step in the task sequence.

At any given moment, but preferably under the ‘Custom Action’s’ folder, create a ‘Run Command Line’, with the following commandline: “cscript.exe %SCRIPTROOT%\LTISuspend.wsf”

figure 1.1: Suspend Task Sequence Step

LTISuspend_ts

this will postpone the task sequence and create a shortcut on the desktop called ‘Resume Task Sequence’. However when using the following property in your customsettings.ini: “HideShell=YES”, your desktop shell will not be fully loaded, thus it would be possible that no desktop, taskbar and other icons where presented during the LTISuspend.wsf.

figure 1.2: No Explorer Shell

TS Progress

Luckily this isn’t the case. When the machine is suspended and HideShell is set to YES in the customsettings.ini the task sequence will be succesfully postponed, however the Windows theme, will be set to basic, as we can see by the screenshot I took:

figure 1.3: Suspended Task Sequence

LTISuspend

So use it with confidence!

Keep on automating my young padawan learners! 😀