Thursday, April 5, 2012

MDT 2010 - Automated Dell XPS 13 Deployment(for the most part)

Updated 4/12/2012: Instructions added for connecting to your wireless network as part of the task sequence.

Updated 8/1/2012: As of 7/25/2012, new driver CAB's are available for the XPS Ultrabook line AND WinPE.  You can find the XPS 13 driver CAB's HERE.  As noted below, touchpad still requires application installation for multi-touch gesture functionality.
 

I say "almost automated" because to my knowledge there is no way to join a wireless network as part of the task sequence.  This causes the join domain task to fail, then the task sequence will loop on the "recover from domain" task until connected to a wireless network with access to a DC.

Edit: I have since discovered a solution for adding a wireless profile as part of the task sequence to resolve this issue.  I have updated the instructions to include the new material(In blue text).  The task sequence is now completely automated aside from actually launching the deployment.  Per best practices, I chose to leave the BDD welcome screen enabled.  This gives you one last chance to cancel the deployment before the hard drive is wiped. 

Welcome to the wonderful world of ultrabooks, where we don't have NIC's to PXE boot from!  If you were wondering how you might go about deploying Windows 7 Enterprise to one of these XPS 13's, here is how I did it.

First off, as there is no way to PXE boot this laptop, I have opted to perform the deployment from a USB Flash Drive.  This guide assumes you will deploy entirely from the flash drive and not from a dock with LAN connectivity.  My selection profile contains nearly 8GB of data so I went with a 16GB Flash drive to allow for expansion.

Step 1.  Preparing the Flash Drive.
See the following link for a detailed explanation on how to properly prep your flash drive to become a boot device: http://www.intowindows.com/bootable-usb/

Step 2.  Preparing your deployment share.
Assuming you want the minimal number of OS images, drivers and software installs, you will want to organize your deployment share in such a manner as to allow you to individually select these items.

As you can see in my illustration, I have created nested folders to separate the various software, operating systems, drivers, and task sequences.

This allows me to create a selection profile for the deployment to copy only the software I need for my XPS 13 deployment.








Step 3.  Preparing Input Driver Installation.


As noted at the bottom of this page, in order for the multi-touch gestures to function properly, this software must be installed manually.

I used 7-zip to extract the Dell executable to a folder and import the installation folder manually.  During the application import process, I use the following command to perform a silent installation of the Touchpad software:
  • "setup.exe /exenoui /quiet /norestart"
Step 4.  Create an XPS 13 Selection Profile, selecting your the software/OS/drivers/task sequence.
  •  Create a selection profile, and select the applications(don't forget your touchpad application), operating system and XPS 13 drivers you want to be included on your Flash media.

    Step 5.  Create a Task Sequence for your XPS 13 deployment.
    • Create a new task sequence specifically for your XPS 13.
    • Modify your task sequence to make deployment easier:
      • Under the "Preinstall" section, select "Inject Drivers".  In the "Selection Profile" drop-down, select your XPS 13 driver selection profile.
      • Under "State Restore", add a new "Run Command" after "Gather Local Only".
        • As seen in the image below, add the following command:
        • netsh wlan add profile filename="%ScriptRoot%\wireless.xml" user=all
        • Under "State Restore", add three new "Install Application" tasks
          • Input drivers (gives you mouse functionality for adding to wireless)
        • Configure the rest of the Task Sequence as you normally would. 
        • Don't forget to go back and add this task sequence to your Selection Profile
        • I recommend capturing a custom WIM of your operating system with all current Microsoft updates.  This will greatly decrease your deployment time.  If you have done this already, you can disable "Pre-Application" Windows updates as well.
      Step 6.  Export your corporate wireless profile to an XML file and add to deployment share.
      • In the previous step we added a netsh run command to our task sequence which referenced the "wireless.xml" file.  Now we will create, configure and copy this file to our "Scripts" folder(%ScriptRoot%) on the deployment share.
        • On a computer connected to your corporate wireless network, run the following command:
          • netsh wlan export name="NameOfWirelessNetwork" folder=%userprofile%\desktop interface="Name of Wireless Adapter"
          • You can find the name of the adapter here: "Control Panel\Network and Internet\Network Connections"(in my case "Wireless Network Connection")
        • After executing the command in the previous step, you will have an xml file named after your network and adapter name(ex. Wireless Network Connection-Firm-Corporate.xml)
          • Rename this file to wireless.xml for simplicity and to conform to our netsh command in the task sequence.  Then edit the file, making the following changes in the <SharedKey> section:
            •  <protected>true</protected> change to false
            • <keymaterial>string of text</keymaterial> delete the string and add the key to your wireless network.
        • Now save the XML file and copy it to the Scripts folder in your deployment share.
      Step 7. Add a New Deployment Media
      • Under "Advanced Configuration", right-click Media and select "New Media".  
      • For "Media Path", I setup a share on my local workstation and specified that UNC path here.  ex. \\pc-name\usb_dep
      • Click the "Selection Profile" drop-down and select your XPS 13 selection profile. 
      • Finish the wizard.
      Step 8. Configure Your Deployment Media
      The deployment media has properties identical to your deployment share.  As such, you will need to configure your "Media Properties" accordingly.  Note: We only install 64-bit Windows on our workstations, so this config is geared specifically to 64-bit.  Here is an example of my config:
      • General Tab
        • Verify correct selection profile is selected
        • Uncheck "Generate x86 boot image"b
        • Uncheck "Generate Lite Touch bootable ISO image"
      • Windows PE x64 Components
      • Rules Tab - configure customsettings.ini and bootstrap.ini.
        • Below is an example of my customsettings.ini file.  For the most part I copied it from my deployment share, but then modified it to perform an automated install.  NOTE: Items in red must be in bootstrap.ini for automated deployment.
       [Settings]
      Priority=Default

      [Default]
      OSInstall=Y
      SkipBDDWelcome=NO
      SkipAppsOnUpgrade=YES
      SkipAdminPassword=YES
      SkipProductKey=YES
      SkipPackageDisplay=YES

      SkipApplications=YES

      SkipDeploymentType=YES
      DeploymentType=NEWCOMPUTER

      UserID=UserAccount(user with access to network files)
      UserDomain=DomainName
      UserPassword=UserPassword

      WSUSServer=http://WsusServer

      _SMSTSORGNAME=What you want to appear in the deployment wizard

      SkipDomainMembership=YES
      JoinDomain=DomainName.local
      DomainAdmin=AdminName(admin with permissions to join domain)
      DomainAdminDomain=DomainName
      DomainAdminPassword=password

      SkipCapture=YES
      ComputerBackupLocation=AUTO

      SkipUserData=YES

      SkipTaskSequence=YES
      TaskSequenceID=W7E_XPS13

      SkipComputerName=YES
      OSDComputerName=%SerialNumber%

      SkipLocaleSelection=YES
      UILanguage=en-US
      UserLocale=en-US
      KeyboardLocale=en-US

      SkipTimeZone=YES
      TimeZoneName=Central Standard Time

      SkipBitLocker=YES
      BDEInstall=TPM
      BdeInstallSuppress=NO
      BDeWaitForEncryption=False
      BDEDriveSize=2000
      BDEDriveLetter=B:
      BdeRecoveryKey=AD
      BDEKeyLocation=\\Server\Share (location to store BitLocker key)

      SkipSummary=YES

      ;Flash Player ActiveX 32bit
      MandatoryApplications001={26fff824-35e5-4adb-87d8-e6f1ed56f1d0}
      ;Oracle JRE 32bit
      MandatoryApplications002={22e6ef66-5d71-4dcb-a3a0-ae092f6cd3dd}
      ;LogMeIn Free
      MandatoryApplications004={1d1623e9-683e-45e7-bd3e-a1a1d576f764}
      ;Foxit Phantom
      MandatoryApplications006={96545ba5-e002-4032-b4d0-26b6de044e44}
      ;Apple iTunes(Don't judge me, our executives/sales LOVE iPads/iPhones)
      MandatoryApplications007={6cc8b7e6-e85a-40b0-9881-4bc6975503bb}
      ;Firefox 14 w Flash
      MandatoryApplications008={999decb7-ce92-4f14-bbfe-85ad312aba9c}
      ;Flash Player ActiveX 64bit
      MandatoryApplications009={6efb0b72-633c-489d-afa6-dd1abfe79f8c}
      Once you have configured all of your settings,  save the changes and exit the properties window.

      Step 9. Update Deployment Media
      • Right click on your newly created Deployment Media and select "Update Media Content".  This will copy everything in your selection profile to the UNC path as well as create new Windows PE boot media.
      • From the destination directory, copy everything from the "Content" folder to your USB Flash Drive.
      That's it!  At this point you should be able to pop the flash drive in your XPS 13, hit F12 at startup and deploy your XPS 13 from the flash drive.