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.

      32 comments:

      1. I have no words for this great post such a awe-some information i got gathered. Thanks to Author.
        flash to html5 converter

        ReplyDelete
      2. Thanks for the information, just wanted to share that I've got it working taking a different approach. I basically wanted to boot off the USB stick but do everything else off the network like a normal PXE boot. I was able to do this by using the Linksys USB300 USB to Ethernet adapter. Obviously I needed to import the driver for this and the USB 3 driver into MDT. The Linksys USB300 is seen by WinPE and Windows so the OS install and application installs are all pulled from our Deployment share like normal.

        ReplyDelete
        Replies
        1. How did you go about injecting the USB 3.0 drivers? Did you get them from Dell, and did you manually inject them into the WIM or just import them into MDT?

          I downloaded and imported the drivers from Dell to MDT but they don't seem to get installed automatically during deployment.

          Delete
        2. I downloaded the USB 3.0 drivers from Dell, and imported them into MDT like a normal out of box driver. The key to getting them installed was, on the WinPE x64 Components tab of the Deployment Share properties was to select "Include all drivers from this selection profile". By default I think it only includes Network and Mass Storage drivers which the USB 3 driver is not.

          Delete
        3. Hi Zak/Kevin,

          Just got finished doing this though we use a single WIM file here to push out our images, then sysprep and Ghost dump. We used an Apple USB Ethernet adapter, added the x86/x64 drivers to MDT and the adapter worked without issue during WinPE setup. The issue arrived when trying to read from the flash drive during WinPE as the USB3 drivers were not in the boot image by default.

          I too got stuck at the USB3 item. As Kevin stated, you can tell MDT to include all drivers but that really bloats the boot image if you happen to have a lot of drivers and are trying to do a single image and/or task sequence. I did not wish to create an additional task sequence if it could be helped.

          I just added the drivers manually at the WAIK command prompt. This allowed me to continue using a single task sequence, install.wim and boot.wim image files and not having to inject tons of drivers into the boot image. If you need more info on that process, I can post more description. I

          In getting the XPS 13, which is a fantastic machine by the way, to fit into the 'Enterprise' scheme of MDT/Ghost, the easiest thing was to inject manually the Fresco Logic USB3 drivers. We had come across this issue as well with the E6420 but it has two USB2 ports and one USB3 port so we just moved the key to a different port.

          Injecting the driver manually should also allow you to remove the USB3 task sequence item? We did not have to include a separate item for USB3 install as the drivers, once added to MDT, were installed properly.

          I also did not have to do the video/touchpad as separate items either. The touchpad, once unzipped, can be added as an 'application' and chosen at the application install screen if desired. Just tell MDT: "setup.exe /s" for the silent switch.

          The video drivers imported into MDT as well without issue and installed at the inject driver sequence.

          Delete
        4. Also forgot to mention that you can place the wireless profiles in a shared location and import from there rather than the flash drive as well if you are using a USB Ethernet adapter:

          cmd /c netsh wlan add profile filename=""\\{server name}\{deployment share location}\{wireless profile name}.xml"

          Delete
        5. Hi daov2a,

          Thanks for the reply.

          To prevent bloating of the boot image, I do two things:

          1. I import the Dell-WinPE-Drivers cab file into it's own drivers WinPE drivers folder. After, I import the Fresco USB 3.0 driver into the same folder.

          2. I then have a WinPE selection profile in which the only selection is my WinPE driver folder. I select this selection profile under "Windows PE x64 Components" tab of the media properties.

          As the Dell WinPE driver package only has storage and network drivers, this keeps my boot image relatively small at 174MB.

          Delete
      3. great tip on joining the wireless network, i did not know it could import/export xml to netsh

        ReplyDelete
      4. I have one unknown device after adding all of the drivers to MDT via the method you describe and installing the three driver packages manually after the MDT install sequence has finished. The device is: ACPI\INT33A0

        *INT330A0

        ReplyDelete
        Replies
        1. I am about to deploy 5 of these, I will check devices after, but I assume this is likely one of the Intel drivers like the Smart Connect.

          Delete
      5. Good to know someone else has been working on this as well. Like Kevin, I was able to boot to PE using the USB NIC. I haven't gotten much further than that as everytime the Task Sequence gets to the Install Operating System phase it crashes with this message: Windows cannto locste the disk and partition specified in the unattend answer files's setting. I have tried several different configs with no luck. What are you using?

        ReplyDelete
        Replies
        1. Hi Nuff,

          I do not deploy from the network at all, my entire deployment is from the Flash media. The only thing network related is the domain join and Post-Application windows updates, which all happens on the WiFi.

          Zak

          Delete
        2. Hi Nuff,

          This may be due to the disk not being a blank format when you're running through your task sequence? The XPS 13 arrives from Dell with about four partitions:

          OS, Recovery, Diagnostics and System Reserved if I recall correctly.

          If your unattend file is specifying a disk/partition that is not properly formatted or does not appear as it should, such as disk 0, partition 2 being the 'System Reserved' partition and therefore small and unable to hold the entire OS, then that's likely what's happening. I would try ghosting or backing up the machine in its 'from factory' setup, then wiping all partitions to see if the task sequence then works. At that point, you should be able to alter your unattend file to point at the proper partition or whichever partition you want to use instead.

          Delete
        3. Thanks for the feedback daov2a. Actually the task sequence is cleaning the disk and creating partitions as it should (500MB system partition with the rest as one partition). When I reach the error I can open up a command prompt (F8) and using diskpart the partitions show just fine. It is as if at this point the task sequence just doesn't know how to talk to the drive anymore. During one test, I forced the Advanced drive options for the install to come up. Even though the partitions showed up as I described before, the "Next" option never became available when I selected the larger of the 2 partitions. The most befuddling thing is that I can load Win7 Enterprise using the DVD with no problems, which would seem to indicate that Windows7 and WinPE have the correct drivers for disk operation by default.

          Delete
        4. That definitely sounds driver related for whatever reason but odd that you can load from a DVD?? When you're building the task sequence and driver store, are you including both 'Huron' drivers listed for the XPS 13 on its drivers page from Dell? I included both of those and have not come across this issue. Might check they're both there?

          So during the task sequence, the drivers inject correctly and it jumps to 'Install Operating System' and fails?

          I do recall this happening a long time ago during my initial hazing for MDT but can't recall the fix... I will have to dig through the cobwebs...but I believe it was due to the format not taking place properly/completely when called by the unattend file.

          Try going to the advanced drive options when it fails and formatting the partition from there and see if it then allows you to press Next. If so, then the format is not taking for whatever reason or is not completing properly. I also believe that the drive gets 'locked' during a task sequence so you can't get into the advanced drive options and continue it from there but not positive on that. Can you post the details of our unattend file relating to the format/partition stage? Not the whole thing.

          Delete
        5. daov2a,

          I appreciate the extra suggestions. After talking with someone from Dell, it appears that it had to do with the way the disk was being partitioned. After going in the task sequence and unchecking the default action of creating a system partition (leaving a single 100% parition) it has started to work. Never had any issues with any of the other dozen Dell models I have imaged but, hey, at least it is working now. Thanks again.

          Delete
        6. I noticed that, beginning with the latest available E-series laptops, XPS models, and Optiplex 990s that the Dell Diagnostic partition is built differently and doesn't actually live on the HDD anymore but on the board. I would guess this also had something to do with it? I began also skipping the system partition due to this and create a diskpart batch file that runs before the install operating system sequence. This allows me to partition the HDD as needed and load the diagnostic partition as well.

          Delete
        7. I am currently having this problem, unable to get this XPS 13 to image from MDT as it stops the second the windows installer pops up says it's unable to create a new system partition or locate an existing one. I'm using MDT 2012 though, I've just about changed every setting available in the task sequence in regards to how the drive is partitioned and nothing is working. It's driving me nuts.

          Delete
        8. Hi all, this is great post with very good information but I am still having issue similar to Nuff, ab57ca62-aff6-11e1-acf4-000bcdcb2996 and couple of others in this post. I am booting from USB (WinPE) with all the Dell XPS 13 drivers loaded and connecting to network via USB to NIC card to my deployment share to image this laptop with Windows 7 Ent 64 bit. Everything works fine till it tries to install win 7 OS, then it fails and through the error. Here is the error
          "Setup was unable to create a new system partition or locate an existing system partition. see the setup log files for more information."
          I know this dell xps 13 has SSD. I even changed SATA controller in bios to ATA from AHCI but no luck. I tried many different disk partition/format utilities but when start the build keep getting same error. strange thing is it works one in every 15-20 times. I really appreciate somebody's help with this.

          Thank you

          DP

          Delete
        9. WinPE, when formatting, is likely saying 'format partition 2' and is not deleting any partitions or re-creating partitions.

          By default, the XPS 13, comes with a DUP (Dell Utility Partition), System Reserved partition and the OS partition. That's three partitions. My guess is your Unattend states to write the OS to the 2nd partition, which is set to be the system reserved partition and therefore would be too small. Try telling the unattend to write to the 3rd partition or remove ALL partitions using cmd (F8) and diskpart. It may also be that since the partitions are not being removed, that WinPE believes it is working with a clean disk, which is not the case. I don't believe WinPE will remove all partitions before creating the appropriate partitions to install the OS. It assumes the disk is empty and ready for partition creation.

          I would suggest doing a ghost backup of the laptop prior to removing partitions to save the DUP if it's needed.

          I created a batch file that ran a diskpart sequence and created the DUP as well as the sys reserved and OS partition, inserted it as a commandline in the task sequence and disabled the WinPE task sequences for formatting, etc.

          Delete
      6. Hey, I had a question. Have any of you deploying XPS13 models via MDT run into an issue where the image deploys just fine, but upon reboot I get an error that windows cannot verify the digital signature for \windows\system32\drivers\ahcix64.sys with status 0xc0000428?

        ReplyDelete
        Replies
        1. Hi Regnirok,

          Are you installing on XP on the XPS 13?

          Delete
        2. Nope, Win7 Ent. As it turned out, I had accidently misclicked to include my WinPE driver set in the XPS13 selection profile, and that was causing the issue. Everything working fine, though I found that I had to insert a suspend action after injecting the wireless network settings, otherwise the USB stick would immediately try to join the domain and fail while the OS was connecting to the Wireless for the first time(and trying to determine its location).

          Delete
      7. This comment has been removed by the author.

        ReplyDelete
      8. Has anyone had an issue with the deployment not finding the SSD in the XPS13. I am able to boot PXE with my USB drive, then point the deployment at my deployment server via the USB network adapter and the drivers inject etc but when it actually goes to copy the files it says it cannot find a drive to do the install. I exit out and PXE shows the SSD disk in disk part with 119GB free. A bit confused at this point.

        ReplyDelete
      9. Hi all, Sorry I am reposting this (earlier I posted under Nuff's reply). Just want to make sure this is visible and possibly get some assistance with this. this is great post with very good information but I am still having issue similar to Nuff, ab57ca62-aff6-11e1-acf4-000bcdcb2996 and Tylerw in this post. I am booting from USB (WinPE) with all the Dell XPS 13 drivers loaded and connecting to network via USB to NIC card to my deployment share to image this laptop with Windows 7 Ent 64 bit. Everything works fine till it tries to install win 7 OS, then it fails and through the error. Here is the error
        "Setup was unable to create a new system partition or locate an existing system partition. see the setup log files for more information."
        I know this dell xps 13 has SSD. I even changed SATA controller in bios to ATA from AHCI but no luck. I tried many different disk partition/format utilities but when start the build keep getting same error. strange thing is it works one in every 15-20 times. I really appreciate somebody's help with this.

        Thank you

        DP

        ReplyDelete
        Replies
        1. DP786,

          Just FYI, with BIOS revision A06, you can now PXE boot to any SMSC 7500 chipset based USB ethernet adapters using the USB 2.0 port.

          There are a few of these on Amazon.com although Dell markets the Startech adapter in their XPS 13 deployment info.

          1: Startech USB21000S2
          2: USpeed AK-66UPGEA-BU

          I have a few on order and will post results once they come in. It looks like Dell has finally given us a legit method to deploy the XPS 13.

          Delete
        2. Just got our Startech USB21000S2 and tested with our WDS image server. Had to inject driver into my boot image and worked like a charm. Thanks for the great info! This will save us from the headache of having to try to USB image these things.

          Delete
      10. Hi,

        I work within the Dell EUC solutions Marketing team

        Just to let you know that this is this blog trail I used to alert and get our Product group to address your difficulties to image the XPS13 and release a revised BIOS and CAB drivers


        ReplyDelete
        Replies
        1. That is awesome, my company would be far more open to providing the Ultrabook models to our employees if they were included on the MDT cab site.

          Thanks!

          Delete
      11. Thanks for all of the info. To echo what was mentioned recently by Zak, a combination of the right BIOS, USB adapter, and WinPE driver CAB allows you to boot right from your MDT server. I got my info here: http://en.community.dell.com/techcenter/b/techcenter/archive/2012/07/25/dell-xps-driver-cabs-are-now-available.aspx

        ReplyDelete