LTI/ZTI Deployments: Injecting drivers during deployment

One of the best reasons implementing MDT 2012 is the way it manages your drivers. I had a customer who was using WDS only for deploying their Windows 7 images. They told me that the deployment would halt for around 30 minutes when applying drivers. The problem there was that every driver was being to applied to every machine during deployment. I explained to them a few ways in which MDT could help.

Small Scale

When you create a new Operating System deployment Task Sequence, the default behaviour is to Install only matching drivers from the selection profile. This will save an immense amount of time without you having to do anything.

ApplyDriverSelectionProfile-Default

For small deployments with up to 10 models and only 1 version of Windows these defaults will suffice and I would continue to use them.

Medium Scale

If you have multiple Operating Systems I suggest using the driver selection profiles to isolate each Operating System and Architecture(x86,AMD64).

ApplyDriverSelectionProfile-Win7

Large Scale

For larger organisations where you have many makes and models (25+) and multiple OS versions I suggest isolating your Drivers by Operating System/Architecture and Make/Model then dynamically applying the drivers. This will isolate and ensure that only the exact drivers are downloaded in injected during your deployments.

Here’s how it’s done. Organise your drivers by using the driver management methods in my previous posts:

Your drivers will now be organised in a tree hierarchy like in this screenshot.

This time we wont be using the selection profiles so change the selection profile to nothing.

ApplyDriverSelectionProfile-Nothing

Next, create a new Task Sequence Variable for DriverGroup001 and enter a value for the Operating System root folder then make and model variables.

SetDriverGroup

Now during your deployments, MDT will only apply a small subset of drivers to each model.

You could also do this in the customsettings.ini by adding the DriverGroup property to a specific path. This example demonstrates such a method but assumes you have only 1 Operating System.


[Settings]
Priority=Model, Default
Properties=CustomProperty

[Default]
OSInstall=Y

[OptiPlex 755]
  OSDComputername=PC%SerialNumber%
  DriverGroup001="Windows 7 x86\Dell Inc\OptiPlex 755"

[HP ProBook 6560b]
  OSDComputername=PC01
  DriverGroup001="Windows 7 x86\Hewlett-Packard\HP ProBook 6560b"

Posted in MDT 2010, MDT 2012, SCCM | Tagged , , | 18 Comments

MDT 2012: Skipping Deployment Wizard Panes

Microsoft Deployment Toolkit 2012

This is an updated version of the skipping deployment wizard pages table. This is one of the most popular articles on Scriptimus Ex Machina as it covers most of what is required to automate Lite Touch deployments. Readers use it as a jumping off point to find other articles written here.

If you’re interested in automating your deployments then this table should help. You can also use the value SkipWizard property to completely hide all wizard panes. If you do this however, remember to supply all the required values or your deployments may fail.

Skip this wizard page

Using this property

Configure these properties

Welcome

SkipBDDWelcome

Specify credentials for connecting to network shares

Skipped by providing properties in next column

·  UserID

·  UserDomain

·  UserPassword

Task Sequence

SkipTaskSequence

·  TaskSequenceID

Computer Details

SkipComputerName,

SkipDomainMembership

·  OSDComputerName

·  JoinWorkgroup

–or–

·  JoinDomain

·  DomainAdmin

User Data

SkipUserData

·  UDDir

·  UDShare

·  UserDataLocation

Move Data and Settings

SkipUserData

·  UDDir

·  UDShare

·  UserDataLocation

User Data (Restore)

SkipUserData

·  UDDir

·  UDShare

·  UserDataLocation

Computer Backup

SkipComputerBackup

·  BackupDir

·  BackupShare

·  ComputerBackupLocation

Product Key

SkipProductKey

·  ProductKey

–or–

·  OverrideProductKey

Language Packs

SkipPackageDisplay

·  LanguagePacks

Locale and Time

SkipLocaleSelection,

SkipTimeZone

·  KeyboardLocale

·  UserLocale

·  UILanguage

·  TimeZone

·  TimeZoneName

Roles and Features

SkipRoles

·  OSRoles

·  OSRoleServices

·  OSFeatures

Applications

SkipApplications

·  Applications

Administrator Password

SkipAdminPassword

·  AdminPassword

Local Administrators

SkipAdminAccounts

·  Administrators

Capture Image

SkipCapture

·  ComputerBackupLocation

Bitlocker

SkipBitLocker

·  BDEDriveLetter

·  BDEDriveSize

·  BDEInstall

·  BDEInstallSuppress

·  BDERecoveryKey

·  TPMOwnerPassword

·  OSDBitLockerStartupKeyDrive

·  OSDBitLockerWaitForEncryption

Ready to begin

SkipSummary

Operating system deployment completed successfully

SkipFinalSummary

Operating system deployment did not complete successfully

SkipFinalSummary

 

 

Posted in Deployment, MDT 2012 | Tagged , , , | 8 Comments

MDT 2012: DomainOUs List

There’s a feature in MDT that displays a dropdown list of Domain OU’s in the Lite Touch deployment wizard. There are 2 ways to set it up.

First, you can create a list of OU’s in the customsettings.ini by using the DOMAINOUS variable list. This first example demonstrates this:

DomainOUs-Customsettings.ini

This example shows the other method where you create a file in your scripts folder called DomainOUList.xml and list each OU in a separate element:

DomainOUs-DomainOU.XML

The result is you now get a dropdown list button next to the Organizational Unit in the deployment wizard.

DomainOUs-JoinDomainPane

The list displays the OU’s you entered earlier making it easier to select and reduce errors during deployments.

DomainOUs-JoinDomainPane2

 

There’s also an old post by Keith Garner here that shows how to display friendly names.

Posted in Deployment, MDT 2010, MDT 2012 | Tagged , | 3 Comments

MDT 2012: Missing network drivers during LTI boot

I was contacted last week by a former colleague who is just getting into MDT. He was missing drivers on one model and received this common error page during his boot sequence. Naturally, I had loads of resources to share but sadly the final part was missing from my blog. The error is:

A connection to the deployment share (\\Server\DeploymentShare$)
could not be made.
The following networking device did not have a driver installed.
PCI\VEN_15AD&DEV_07B0&SUBSYS_07B015AD&REV_01

Here’s how to resolve this issue.

Missing Drivers

This error is very helpful in that it shows the hardware ID of the missing network driver. A quick Google search or visit to Microsoft Update Catalog should find the missing drivers.

Create a Driver Store

After you locate and download the correct driver, create an organised driver store on a local or network drive. I posted a script to do this a few months back. MDT Powershell: Creating a Driverstore folder structure

Import Drivers

Next, import the drivers into the desired Windows PE folder and run the script to import the drivers into the deployment workbench. Again, I created another script to do this a few months back. MDT Powershell: Importing device drivers from organised folders My script will not only creates the driver folders but the selection profiles also.

Check the hardware ID of the imported driver and ensure that it matches the error from earlier.

Imported Driver

Apply Selection Profiles

We now need to use selection profiles to ensure that only the Windows PE network drivers get copied to the boot disk, otherwise the boot image can take longer to load.

To do this, right-click the deployment share and select properties. Select the correct platform then the WinPE selection profile.

DriverSelection

Recreate the Boot Image

Finally, recreate the boot image by updating the deployment share.

UpdateDeploymentShare

Update your boot media with the newly updated LiteTouchPE_x64.wim file and reboot your client.

DriversFixed

I recommend implementing selection profiles like this to isolate your boot drivers and ensure that the boot process runs as fast as possible.

Posted in Deployment, MDT 2010, MDT 2012 | Tagged , , , | 8 Comments

Test Lab: Base Configuration – Hydration Kit: Custom Default settings

TLGs_logo

When using the Test Lab:Base Configuration Hydration Kit, you may want to use your own custom domain and server names. After all, it’s your testlab and you might spend a considerable amount of time working there. It makes sense to personalise it. The wizard is designed to allow customisation but this can become cumbersome if you rebuild your own custom labs repeatedly(like me). Here’s my method of customising the defaults in the Hydration kit.

After you’ve built the media folder using the Build-Kit.ps1 script you can edit the customsettings.ini file to change the defaults. If you’re not familiar with MDT, this is the configuration file that stores the default settings. By default the Hydration Kit stores the media customsettings.ini in the C:\TestLab_BaseConfigMedia\Content\Deploy\Control\ folder

EditCustomSettings.ini

Use notepad to make the changes to the server names, domain and IP Scopes if desired. Remember to be consistent with your changes or your deployment will fail. Below is an example of a modified file.

modifiedcustomsettings.ini

Now you can run the create media script to create your customised media file. This command will create a new media file from the default folder with the name CON-TestLabConfig.iso.

.\Create-Media.ps1 -ISOImageName CON-TestLabBaseConfig.iso

CreateCustomImage

Follow the project here on Codeplex for updates.

Posted in Deployment, MDT 2012, Testlab | Tagged , , , | 5 Comments

Test Lab: Base Configuration – Hydration Kit released.

I’ve released my first Codeplex project today. It’s available at http://testlabhydrationkit.codeplex.com

Hydration Kit – Test Lab: Base Configuration for Windows Server 2008 R2

The code is Microsoft Deployment Toolkit standalone media (Hydration Kit) that will configure each of the servers in the Test Lab Guide: Base Configuration. The tool will build your fully functional Test Lab in minutes. Getting this core out of the way allows you to focus on your actual project that you may find in the Test Lab Guide Wiki.

I found myself rebuilding my virtual host which meant rebuilding my lab so I decided to use MDT to automate the process. After I got it working, I decided to put a front end on it and share with the on-line community.

Due to Microsofts redistribution policy, you have to assemble the kit yourself. But my scripts will take care of that for you. The Kit will use 3 scripts to create a deployment media ISO image. You use this image to build your servers in your test lab.

Here’s a quick walkthrough. Once the ISO is inserted into a server, you will get the autorun prompt.

The first screen is the server selection screen. Click next.

Each server has it’s own unique configuration wizard pane. This will allow you to use your own custom naming standards and IP address scopes etc. The defaults will build the standard Contoso domain as detailed in the TLG guides. Accept the defaults and click next.

You will see a confirmation pane allowing you to review the configuration settings before deployment. Click Begin.

The Hydration process will begin, rebooting as needed.

When finished you will be presented with a final summary page.

You’re then able to repeat the process for the next server.

That’s all there is to it. The Kit is available from the codeplex project: http://testlabhydrationkit.codeplex.com

Let me know if you find this useful. Please post any issues/bugs here rather than below on this page and I will address them. Enjoy.

Posted in Deployment, MDT 2012, Testlab | Tagged , , , | 4 Comments

LTI/ZTI Deployments: Add roles and features

I had a post drafted on adding roles and features, to begin a series of posts on server role deployment. However, Michael Neihaus has been kind enough to write up a great article on his blog. You can read it here: MDT 2012 Update 1: Roles and Features improvements

In addition, roles and features can be automated in the customsettings.ini. For a client use OSFeatures and for servers use OSRoles and/or OSRoleServices or OptionalOSRoles(Depricated, I think). These features use the properties in a comma seperated list. Example:

To install both ADDS and DHCP roles on a server.

Add the Install Roles and Features step to your task sequence.

In your customsettings.ini add this line:

OSRoles = AD-Domain-Services,DHCP

Remember this only adds the roles, not configure. That comes later.

You can get a list of the values you can use for roles by using the Server Manager command line tool or the Powershell servermanager module.

 

Posted in Deployment, MDT 2010, MDT 2012 | Tagged , , | 2 Comments