none
MDT Deployment of Windows 10 to Surface Pro 3 Fails from Boot Media RRS feed

  • Question

  • Surface Pro 3 devices can be imaged using LiteTouch.vbs from a run command.  

    If imaged from a UEFI USB Drive created from LiteTouchx64, it will fail with errors.  Not able to find "E:"

    TS is setup to prevent upgrades.  Only fresh deployments.

    Have tried booting normally (Power + Down Volume), and with Secure Boot disabled.

    When the TS fails I hit F8 and started DISKPART List Drive

    DISKPART only shows DISK 1, the USB drive.  DISK 0 is missing.

    USB drive is connected to the Surface Pro 3 two options.  USB Hub and Factory USB NIC, or StarTech USB31000SPTB USB NIC with USB port.  Either option results in the same.

    I found similar problems reported but they were either a bit different, or were old and had no resolution posted.

    Thanks,

    -Matt


    There's no place like 127.0.0.1

    Wednesday, October 28, 2015 10:34 PM

Answers

All replies

  • Using MDT 2013 Update 1 (Redux), and the Deploy TS was recreated just now from scratch.  Same issue.

    <?xml version="1.0"?>
    <sequence version="3.00" name="Standard Client Task Sequence" description="A complete task sequence for deploying a client operating system">
      <globalVarList>
        <variable name="OSGUID" property="OSGUID">{3b01a881-6e8c-4e36-a65f-32e57c07905c}</variable>
        <variable name="DestinationDisk" property="DestinationDisk">0</variable>
        <variable name="DestinationPartition" property="DestinationPartition">1</variable>
        <variable name="DestinationOSVariable" property="DestinationOSVariable">OSDisk</variable>
        <variable name="DestinationOSRefresh" property="DestinationOSRefresh"></variable>
        <variable name="DestinationOSDriveLetter" property="DestinationOSDriveLetter"></variable>
        <variable name="DestinationOSInstallType" property="DestinationOSInstallType">ByVariable</variable>
      </globalVarList>
      <group name="Initialization" disable="false" continueOnError="false" description="Initialize the TS environment" expand="false">
        <step type="BDD_Gather" name="Gather local only" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <defaultVarList>
            <variable name="GatherLocalOnly" property="GatherLocalOnly">true</variable>
            <variable name="RulesFile" property="RulesFile"></variable>
          </defaultVarList>
          <action>cscript.exe "%SCRIPTROOT%\ZTIGather.wsf"</action>
        </step>
      </group>
      <group name="Validation" disable="false" continueOnError="false" description="Test" expand="false">
        <condition>
          <operator type="or">
            <expression type="SMS_TaskSequence_VariableConditionExpression">
              <variable name="Variable">PHASE</variable>
              <variable name="Operator">equals</variable>
              <variable name="Value">VALIDATION</variable>
            </expression>
          </operator>
        </condition>
        <step type="BDD_Validate" name="Validate" successCodeList="0 3010" description="" startIn="" disable="false" continueOnError="false">
          <defaultVarList>
            <variable name="ImageSize" property="ImageSize">0</variable>
            <variable name="ImageProcessorSpeed" property="ImageProcessorSpeed">800</variable>
            <variable name="ImageMemory" property="ImageMemory">768</variable>
            <variable name="VerifyOS" property="VerifyOS">CLIENT</variable>
          </defaultVarList>
          <action>cscript.exe "%SCRIPTROOT%\ZTIValidate.wsf"</action>
        </step>
        <step name="Check BIOS" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIBIOSCheck.wsf"</action>
        </step>
        <step name="Next Phase" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTINextPhase.wsf"</action>
        </step>
      </group>
      <group name="State Capture" description="" disable="false" continueOnError="false" expand="false">
        <condition>
          <expression type="SMS_TaskSequence_VariableConditionExpression">
            <variable name="Variable">PHASE</variable>
            <variable name="Operator">equals</variable>
            <variable name="Value">STATECAPTURE</variable>
          </expression>
        </condition>
          <step type="SMS_TaskSequence_RunCommandLineAction" name="Generate Application Migration File" description="" disable="false" continueOnError="false" successCodeList="0 3010" runIn="WinPEandFullOS" startIn="">
            <defaultVarList>
              <variable name="PackageID" property="PackageID"></variable>
            </defaultVarList>
            <action>cscript.exe "%SCRIPTROOT%\ZTIAppXmlGen.wsf" /capture</action>
          </step>
          <step name="Capture User State" successCodeList="0 3010" description="" startIn="" disable="false" continueOnError="false">
            <condition>
              <expression type="SMS_TaskSequence_VariableConditionExpression">
                <variable name="Variable">USMTOfflineMigration</variable>
                <variable name="Operator">notEquals</variable>
                <variable name="Value">TRUE</variable>
              </expression>
            </condition>
            <action>cscript.exe "%SCRIPTROOT%\ZTIUserState.wsf" /capture</action>
          </step>
          <step name="Capture Groups" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
            <action>cscript.exe "%SCRIPTROOT%\ZTIGroups.wsf" /capture</action>
          </step>
          <step name="Capture Network Settings" description="" runIn="WinPEandFullOS" successCodeList="0 3010">
            <action>cscript.exe "%ScriptRoot%\ZTINicConfig.wsf"</action>
          </step>
        <group name="Refresh only" disable="false" continueOnError="false" description="" expand="false">
          <condition>
            <expression type="SMS_TaskSequence_VariableConditionExpression">
              <variable name="Variable">DeploymentType</variable>
              <variable name="Operator">equals</variable>
              <variable name="Value">REFRESH</variable>
            </expression>
          </condition>
          <step type="SMS_TaskSequence_RunCommandLineAction" name="Disable BDE Protectors" description="" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
            <defaultVarList>
              <variable name="PackageID" property="PackageID"></variable>
            </defaultVarList>
            <action>cscript.exe "%SCRIPTROOT%\ZTIDisableBDEProtectors.wsf"</action>
          </step>
          <step name="Apply Windows PE" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
            <action>cscript.exe "%SCRIPTROOT%\LTIApply.wsf" /PE</action>
          </step>
        </group>
        <step name="Next Phase" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTINextPhase.wsf"</action>
        </step>
        <group name="Refresh only" disable="false" continueOnError="false" expand="true" description="">
          <condition>
            <expression type="SMS_TaskSequence_VariableConditionExpression">
              <variable name="Variable">DeploymentType</variable>
              <variable name="Operator">equals</variable>
              <variable name="Value">REFRESH</variable>
            </expression>
          </condition>
          <step type="SMS_TaskSequence_RebootAction" name="Restart computer" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
            <defaultVarList>
              <variable name="Message" property="Message"></variable>
              <variable name="MessageTimeout" property="MessageTimeout">60</variable>
              <variable name="Target" property="Target"></variable>
            </defaultVarList>
            <action>smsboot.exe /target:WinPE</action>
          </step>
        </group>
      </group>
      <group name="Preinstall" disable="false" continueOnError="false" description="" expand="false">
        <condition>
          <expression type="SMS_TaskSequence_VariableConditionExpression">
            <variable name="Variable">PHASE</variable>
            <variable name="Operator">equals</variable>
            <variable name="Value">PREINSTALL</variable>
          </expression>
        </condition>
        <step type="BDD_Gather" name="Gather local only" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <defaultVarList>
            <variable name="GatherLocalOnly" property="GatherLocalOnly">true</variable>
            <variable name="RulesFile" property="RulesFile"></variable>
          </defaultVarList>
          <action>cscript.exe "%SCRIPTROOT%\ZTIGather.wsf"</action>
        </step>
        <group name="New Computer only" disable="false" continueOnError="false" description="" expand="false">
          <condition>
            <expression type="SMS_TaskSequence_VariableConditionExpression">
              <variable name="Variable">DeploymentType</variable>
              <variable name="Operator">equals</variable>
              <variable name="Value">NEWCOMPUTER</variable>
            </expression>
          </condition>
          <step type="BDD_Validate" name="Validate" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
            <defaultVarList>
              <variable name="ImageSize" property="ImageSize">0</variable>
              <variable name="ImageProcessorSpeed" property="ImageProcessorSpeed">800</variable>
              <variable name="ImageMemory" property="ImageMemory">768</variable>
              <variable name="VerifyOS" property="VerifyOS">CLIENT</variable>
            </defaultVarList>
            <action>cscript.exe "%SCRIPTROOT%\ZTIValidate.wsf"</action>
          </step>
          <step type="SMS_TaskSequence_PartitionDiskAction" name="Format and Partition Disk (BIOS)" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
            <condition>
              <expression type="SMS_TaskSequence_VariableConditionExpression">
                <variable name="Operator">notEquals</variable>
                <variable name="Value">True</variable>
                <variable name="Variable">IsUEFI</variable>
              </expression>
            </condition>
            <defaultVarList>
              <variable name="OSDDiskIndex" property="DiskIndex">0</variable>
              <variable name="OSDDiskPartitions1Type" property="OSDDiskPartitions1Type">Recovery</variable>
              <variable name="DONotCreateExtraPartition" property="DONotCreateExtraPartition"></variable>
              <variable name="OSDPartitions0VolumeName" property="Partitions0VolumeName">System Reserved</variable>
              <variable name="OSDPartitions0Type" property="Partitions0Type">Primary</variable>
              <variable name="OSDPartitions0FileSystem" property="Partitions0FileSystem">NTFS</variable>
              <variable name="OSDPartitions0Size" property="Partitions0Size">499</variable>
              <variable name="OSDPartitions0SizeUnits" property="Partitions0SizeUnits">MB</variable>
              <variable name="OSDPartitions0Bootable" property="Partitions0Bootable">True</variable>
              <variable name="OSDPartitions0QuickFormat" property="Partitions0QuickFormat">True</variable>
              <variable name="OSDPartitions0VolumeLetterVariable" property="Partitions0VolumeLetterVariable"></variable>
              <variable name="OSDPartitions1Type" property="Partitions1Type">Primary</variable>
              <variable name="OSDPartitions1FileSystem" property="Partitions1FileSystem">NTFS</variable>
              <variable name="OSDPartitions1Bootable" property="Partitions1Bootable">False</variable>
              <variable name="OSDPartitions1QuickFormat" property="Partitions1QuickFormat">True</variable>
              <variable name="OSDPartitions1VolumeName" property="Partitions1VolumeName">Windows</variable>
              <variable name="OSDPartitions1Size" property="Partitions1Size">99</variable>
              <variable name="OSDPartitions1SizeUnits" property="Partitions1SizeUnits">%</variable>
              <variable name="OSDPartitions1VolumeLetterVariable" property="Partitions1VolumeLetterVariable">OSDisk</variable>
              <variable name="OSDPartitions2Type" property="Partitions2Type">Recovery</variable>
              <variable name="OSDPartitions2FileSystem" property="Partitions2FileSystem">NTFS</variable>
              <variable name="OSDPartitions2Bootable" property="Partitions2Bootable">False</variable>
              <variable name="OSDPartitions2QuickFormat" property="Partitions2QuickFormat">True</variable>
              <variable name="OSDPartitions2VolumeName" property="Partitions2VolumeName">Recovery</variable>
              <variable name="OSDPartitions2Size" property="Partitions2Size">100</variable>
              <variable name="OSDPartitions2SizeUnits" property="Partitions2SizeUnits">%</variable>
              <variable name="OSDPartitions2VolumeLetterVariable" property="Partitions2VolumeLetterVariable"></variable>
              <variable name="OSDPartitions" property="Partitions">3</variable>
              <variable name="OSDPartitionStyle" property="PartitionStyle">MBR</variable>
            </defaultVarList>
            <action>cscript.exe "%SCRIPTROOT%\ZTIDiskpart.wsf"</action>
          </step>
          <step type="SMS_TaskSequence_PartitionDiskAction" name="Format and Partition Disk (UEFI)" description="" runIn="WinPE" successCodeList="0" disable="false" continueOnError="false">
            <condition>
              <expression type="SMS_TaskSequence_VariableConditionExpression">
                <variable name="Operator">equals</variable>
                <variable name="Value">True</variable>
                <variable name="Variable">IsUEFI</variable>
              </expression>
            </condition>
            <defaultVarList>
              <variable name="OSDDiskIndex" property="DiskIndex">0</variable>
              <variable name="OSDDiskPartitions1Type" property="OSDDiskPartitions1Type">Recovery</variable>
              <variable name="DONotCreateExtraPartition" property="DONotCreateExtraPartition"></variable>
              <variable name="OSDPartitions0VolumeName" property="Partitions0VolumeName">Boot</variable>
              <variable name="OSDPartitions0Type" property="Partitions0Type">EFI</variable>
              <variable name="OSDPartitions0FileSystem" property="Partitions0FileSystem">FAT32</variable>
              <variable name="OSDPartitions0Size" property="Partitions0Size">499</variable>
              <variable name="OSDPartitions0SizeUnits" property="Partitions0SizeUnits">MB</variable>
              <variable name="OSDPartitions0Bootable" property="Partitions0Bootable">True</variable>
              <variable name="OSDPartitions0QuickFormat" property="Partitions0QuickFormat">True</variable>
              <variable name="OSDPartitions0VolumeLetterVariable" property="Partitions0VolumeLetterVariable"></variable>
              <variable name="OSDPartitions1Type" property="Partitions1Type">MSR</variable>
              <variable name="OSDPartitions1FileSystem" property="Partitions1FileSystem">NTFS</variable>
              <variable name="OSDPartitions1Bootable" property="Partitions1Bootable">False</variable>
              <variable name="OSDPartitions1QuickFormat" property="Partitions1QuickFormat">True</variable>
              <variable name="OSDPartitions1VolumeName" property="Partitions1VolumeName"></variable>
              <variable name="OSDPartitions1Size" property="Partitions1Size">128</variable>
              <variable name="OSDPartitions1SizeUnits" property="Partitions1SizeUnits">MB</variable>
              <variable name="OSDPartitions1VolumeLetterVariable" property="Partitions1VolumeLetterVariable"></variable>
              <variable name="OSDPartitions2Type" property="Partitions2Type">Primary</variable>
              <variable name="OSDPartitions2FileSystem" property="Partitions2FileSystem">NTFS</variable>
              <variable name="OSDPartitions2Bootable" property="Partitions2Bootable">False</variable>
              <variable name="OSDPartitions2QuickFormat" property="Partitions2QuickFormat">True</variable>
              <variable name="OSDPartitions2VolumeName" property="Partitions2VolumeName">Windows</variable>
              <variable name="OSDPartitions2Size" property="Partitions2Size">99</variable>
              <variable name="OSDPartitions2SizeUnits" property="Partitions2SizeUnits">%</variable>
              <variable name="OSDPartitions2VolumeLetterVariable" property="Partitions2VolumeLetterVariable">OSDisk</variable>
              <variable name="OSDPartitions3Type" property="Partitions3Type">Recovery</variable>
              <variable name="OSDPartitions3FileSystem" property="Partitions3FileSystem">NTFS</variable>
              <variable name="OSDPartitions3Bootable" property="Partitions3Bootable">False</variable>
              <variable name="OSDPartitions3QuickFormat" property="Partitions3QuickFormat">True</variable>
              <variable name="OSDPartitions3VolumeName" property="Partitions3VolumeName">Recovery</variable>
              <variable name="OSDPartitions3Size" property="Partitions3Size">100</variable>
              <variable name="OSDPartitions3SizeUnits" property="Partitions3SizeUnits">%</variable>
              <variable name="OSDPartitions3VolumeLetterVariable" property="Partitions3VolumeLetterVariable"></variable>
              <variable name="OSDPartitions" property="Partitions">4</variable>
              <variable name="OSDPartitionStyle" property="PartitionStyle">GPT</variable>
            </defaultVarList>
            <action>cscript.exe "%SCRIPTROOT%\ZTIDiskpart.wsf"</action>
          </step>
          <step name="Copy scripts" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
            <action>cscript.exe "%SCRIPTROOT%\LTICopyScripts.wsf"</action>
          </step>
        </group>
        <group name="Offline User State Capture" disable="false" continueOnError="false" description="" expand="false">
          <condition>
            <expression type="SMS_TaskSequence_VariableConditionExpression">
              <variable name="Variable">USMTOfflineMigration</variable>
              <variable name="Operator">Equals</variable>
              <variable name="Value">TRUE</variable>
            </expression>
          </condition>
          <step type="SMS_TaskSequence_RunCommandLineAction" name="Offline User State Capture" description="" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
            <action>cscript.exe "%SCRIPTROOT%\ZTIUserState.wsf" /capture</action>
          </step>
          <step type="SMS_TaskSequence_RunCommandLineAction" name="Unload USMT Hive" description="" disable="false" continueOnError="true" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
            <action>cmd /c REG UNLOAD HKLM\$DEST$SOFTWARE</action>
          </step>
        </group>
        <group name="Refresh only" disable="false" continueOnError="false" description="" expand="false">
          <condition>
            <expression type="SMS_TaskSequence_VariableConditionExpression">
              <variable name="Variable">DeploymentType</variable>
              <variable name="Operator">equals</variable>
              <variable name="Value">REFRESH</variable>
            </expression>
          </condition>
          <step name="Backup" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
            <action>cscript.exe "%SCRIPTROOT%\ZTIBackup.wsf"</action>
          </step>
        </group>
        <step name="Configure" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIConfigure.wsf"</action>
        </step>
        <step type="SMS_TaskSequence_RunCommandLineAction" name="Enable BitLocker (Offline)" description="" disable="false" continueOnError="true" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
          <action>cscript.exe "%SCRIPTROOT%\ZTIBDE.wsf"</action>
        </step>
        <step type="BDD_InjectDrivers" name="Inject Drivers" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
          <defaultVarList>
            <variable name="DriverSelectionProfile" property="DriverSelectionProfile">All Drivers</variable>
            <variable name="DriverInjectionMode" property="DriverInjectionMode">AUTO</variable>
          </defaultVarList>
          <action>cscript.exe "%SCRIPTROOT%\ZTIDrivers.wsf"</action>
        </step>
        <step type="BDD_InstallUpdatesOffline" name="Apply Patches" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIPatches.wsf"</action>
          <defaultVarList>
            <variable name="PackageSelectionProfile" property="PackageSelectionProfile">All Packages</variable>
          </defaultVarList>
        </step>
        <step name="Next Phase" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTINextPhase.wsf"</action>
        </step>
      </group>
      <group name="Install" disable="false" continueOnError="false" description="" expand="false">
        <condition>
          <expression type="SMS_TaskSequence_VariableConditionExpression">
            <variable name="Variable">PHASE</variable>
            <variable name="Operator">equals</variable>
            <variable name="Value">INSTALL</variable>
          </expression>
        </condition>
        <step type="BDD_InstallOS" name="Install Operating System" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
          <defaultVarList>
            <variable name="OSGUID" property="OSGUID">{3b01a881-6e8c-4e36-a65f-32e57c07905c}</variable>
            <variable name="DestinationDisk" property="DestinationDisk">0</variable>
            <variable name="DestinationPartition" property="DestinationPartition">1</variable>
            <variable name="DestinationOSDriveLetter" property="DestinationOSDriveLetter"></variable>
            <variable name="DestinationOSVariable" property="DestinationOSVariable">OSDisk</variable>
            <variable name="DestinationOSRefresh" property="DestinationOSRefresh"></variable>
            <variable name="DestinationOSInstallType" property="DestinationOSInstallType">ByVariable</variable>
          </defaultVarList>
          <action>cscript.exe "%SCRIPTROOT%\LTIApply.wsf"</action>
        </step>
        <step name="Next Phase" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTINextPhase.wsf"</action>
        </step>
      </group>
      <group name="Postinstall" disable="false" continueOnError="false" description="" expand="false">
        <condition>
          <expression type="SMS_TaskSequence_VariableConditionExpression">
            <variable name="Variable">PHASE</variable>
            <variable name="Operator">equals</variable>
            <variable name="Value">POSTINSTALL</variable>
          </expression>
        </condition>
        <step name="Copy Scripts" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\LTICopyScripts.wsf"</action>
        </step>
        <step name="Configure" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIConfigure.wsf"</action>
        </step>
        <step name="Inject Drivers" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIdrivers.wsf"</action>
        </step>
        <step type="SMS_TaskSequence_RunCommandLineAction" name="Add Windows Recovery (WinRE)" description="" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
          <action>cscript.exe "%SCRIPTROOT%\ZTIWinRE.wsf"</action>
        </step>
        <step name="Next Phase" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTINextPhase.wsf"</action>
        </step>
        <step type="SMS_TaskSequence_RebootAction" name="Restart computer" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
          <defaultVarList>
            <variable name="Message" property="Message"></variable>
            <variable name="MessageTimeout" property="MessageTimeout">60</variable>
            <variable name="Target" property="Target"></variable>
          </defaultVarList>
          <action>smsboot.exe /target:WinPE</action>
        </step>
      </group>
      <group name="State Restore" disable="false" continueOnError="false" description="" expand="true">
        <condition>
          <expression type="SMS_TaskSequence_VariableConditionExpression">
            <variable name="Variable">PHASE</variable>
            <variable name="Operator">equals</variable>
            <variable name="Value">STATERESTORE</variable>
          </expression>
        </condition>
        <step type="BDD_Gather" name="Gather local only" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <defaultVarList>
            <variable name="GatherLocalOnly" property="GatherLocalOnly">true</variable>
            <variable name="RulesFile" property="RulesFile"></variable>
          </defaultVarList>
          <action>cscript.exe "%SCRIPTROOT%\ZTIGather.wsf"</action>
        </step>
        <step name="Post-Apply Cleanup" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\LTIApply.wsf" /post</action>
        </step>
        <step type="BDD_RecoverDomainJoin" name="Recover From Domain " description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
          <defaultVarList>
            <variable name="DomainErrorRecovery" property="DomainErrorRecovery">Auto</variable>
          </defaultVarList>
          <action>cscript.exe "%SCRIPTROOT%\ZTIDomainJoin.wsf" </action>
        </step>
        <step name="Tattoo" disable="false" continueOnError="true" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTITatoo.wsf"</action>
        </step>
        <step name="Opt In to CEIP and WER" disable="true" continueOnError="true" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIOptIn.wsf" /CEIP:YES /WER:YES</action>
        </step>
        <step name="Windows Update (Pre-Application Installation)" disable="true" continueOnError="true" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIWindowsUpdate.wsf"</action>
        </step>
        <step type="BDD_InstallApplication" name="Install Applications" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIApplications.wsf"</action>
          <defaultVarList>
            <variable name="ApplicationGUID" property="ApplicationGUID"></variable>
            <variable name="ApplicationSuccessCodes" property="ApplicationSuccessCodes">0 3010</variable>
          </defaultVarList>
        </step>
        <step name="Windows Update (Post-Application Installation)" disable="true" continueOnError="true" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIWindowsUpdate.wsf"</action>
        </step>
        <group name="Custom Tasks" disable="false" continueOnError="false" expand="true" description=""></group>
        <step type="SMS_TaskSequence_EnableBitLockerAction" name="Enable BitLocker" continueOnError="true" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIBde.wsf"</action>
          <condition>
            <expression type="SMS_TaskSequence_VariableConditionExpression">
              <variable name="Variable">BdeInstallSuppress</variable>
              <variable name="Operator">notEquals</variable>
              <variable name="Value">YES</variable>
            </expression>
          </condition>
          <defaultVarList>
            <variable name="OSDBitLockerTargetDrive" property="BdeTargetDriveLetter"></variable>
            <variable name="OSDBitLockerMode" property="BdeInstall">TPM</variable>
            <variable name="OSDBitLockerStartupKeyDrive" property="BdeKeyLocation"></variable>
            <variable name="OSDBitLockerCreateRecoveryPassword" property="BdeRecoveryPassword">AD</variable>
            <variable name="OSDBitLockerWaitForEncryption" property="WaitForEncryption">false</variable>
          </defaultVarList>
        </step>
        <step name="Restore User State" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIUserState.wsf" /restore</action>
        </step>
        <step name="Restore Groups" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
          <action>cscript.exe "%SCRIPTROOT%\ZTIGroups.wsf" /restore</action>
        </step>
        <step name="Apply Local GPO Package" description="" disable="false" continueOnError="false" startIn="" successCodeList="0 3010">
          <action>cscript.exe "%SCRIPTROOT%\ZTIApplyGPOPack.wsf"</action>
          <condition>
            <expression type="SMS_TaskSequence_VariableConditionExpression">
              <variable name="Variable">ApplyGPOPack</variable>
              <variable name="Operator">notEquals</variable>
              <variable name="Value">NO</variable>
            </expression>
          </condition>
        </step>
        <group expand="false" name="Imaging" description="" disable="false" continueOnError="false">
          <action />
          <group name="Prepare Only" disable="false" continueOnError="false" expand="true" description="">
            <condition>
              <expression type="SMS_TaskSequence_VariableConditionExpression">
                <variable name="Variable">DoCapture</variable>
                <variable name="Operator">equals</variable>
                <variable name="Value">PREPARE</variable>
              </expression>
            </condition>
            <step name="Copy Sysprep files" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
              <action>cscript.exe "%SCRIPTROOT%\LTISysprep.wsf"</action>
            </step>
          </group>
          <group name="Sysprep Only" disable="false" continueOnError="false" expand="true" description="">
            <condition>
              <expression type="SMS_TaskSequence_VariableConditionExpression">
                <variable name="Variable">DoCapture</variable>
                <variable name="Operator">equals</variable>
                <variable name="Value">SYSPREP</variable>
              </expression>
            </condition>
            <step name="Add mass storage drivers to sysprep.inf for XP and 2003" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
              <action>cscript.exe "%SCRIPTROOT%\ZTIDrivers.wsf"</action>
            </step>
            <step name="Execute Sysprep" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
              <action>cscript.exe "%SCRIPTROOT%\LTISysprep.wsf"</action>
            </step>
          </group>
          <group name="Capture Image" disable="false" continueOnError="false" expand="true" description="">
            <condition>
              <expression type="SMS_TaskSequence_VariableConditionExpression">
                <variable name="Variable">DoCapture</variable>
                <variable name="Operator">equals</variable>
                <variable name="Value">YES</variable>
              </expression>
            </condition>
            <step name="Apply Windows PE" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
              <action>cscript.exe "%SCRIPTROOT%\LTIApply.wsf" /PE /STAGE</action>
            </step>
            <step name="Add mass storage drivers to sysprep.inf for XP and 2003" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
              <action>cscript.exe "%SCRIPTROOT%\ZTIDrivers.wsf"</action>
            </step>
            <step name="Execute Sysprep" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
              <action>cscript.exe "%SCRIPTROOT%\LTISysprep.wsf"</action>
            </step>
            <step name="Apply Windows PE (BCD)" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
              <action>cscript.exe "%_SMSTSMDataPath%\Scripts\LTIApply.wsf" /PE /BCD</action>
            </step>
            <step type="SMS_TaskSequence_RebootAction" name="Restart computer" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
              <defaultVarList>
                <variable name="Message" property="Message"></variable>
                <variable name="MessageTimeout" property="MessageTimeout">60</variable>
                <variable name="Target" property="Target"></variable>
              </defaultVarList>
              <action>smsboot.exe /target:WinPE</action>
            </step>
            <step type="BDD_Gather" name="Gather local only" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
              <defaultVarList>
                <variable name="GatherLocalOnly" property="GatherLocalOnly">true</variable>
                <variable name="RulesFile" property="RulesFile"></variable>
              </defaultVarList>
              <action>cscript.exe "%SCRIPTROOT%\ZTIGather.wsf"</action>
            </step>
            <step name="Create WIM" disable="false" continueOnError="false" successCodeList="0 3010" description="" startIn="">
              <action>cscript.exe "%SCRIPTROOT%\ZTIBackup.wsf"</action>
            </step>
          </group>
        </group>
      </group>
    </sequence>
    


    There's no place like 127.0.0.1

    Wednesday, October 28, 2015 10:37 PM
  • If it wasn't clear, this is happening on all Surface Pro 3's on which we attempt this.

    To recover from this, I have to restore the Surface by applying the recovery partition from USB to get it back to Windows, then deploy from MDT using LiteTouch.vbs.

    -Matt


    There's no place like 127.0.0.1

    Wednesday, October 28, 2015 10:42 PM
  • If it's not seeing the hard drive you probably don't have the necessary storage controller drivers added to WinPE.

    Are you using Johan's driver management method? http://deploymentresearch.com/Research/Post/325/MDT-2013-Lite-Touch-Driver-Management

    A good place to grab PE drivers for machines that use Intel controllers is http://en.community.dell.com/techcenter/enterprise-client/w/wiki/11530.winpe-10-driver-pack That driver pack makes for a good start, then you can add any other PE drivers you need, such as Ethernet drivers.


    If this post is helpful please vote it as Helpful or click Mark for answer.

    • Marked as answer by Matt5150 Thursday, October 29, 2015 9:29 PM
    Thursday, October 29, 2015 2:46 PM
  • I'll clear out my Surface 3 Pro Win8.1 and Win10 driver folders, download the latest drivers, and then update my deployment share.

    I'm thinking though, wouldn't my LiteTouch.vbs attemps fail for the same reason if this were the case?

    -Matt


    There's no place like 127.0.0.1

    Thursday, October 29, 2015 4:24 PM
  • If you boot to USB, you are relying on the PE drivers that have been added to the boot image, this is not the same as the PnP drivers that are injected later on. If you run litetouch from within an OS, you won't run into the issue of not seeing the hard drive because you are already booted into an OS with working drivers.

    If this post is helpful please vote it as Helpful or click Mark for answer.

    Thursday, October 29, 2015 4:31 PM
  • I may be misunderstanding how it works then.

    After LiteTouch reboots the OS, I thought it was launching into the same WinPE that I built my boot drive from.  It follows the same steps, such as formatting the hard drive and such.  I figured it would have to be using the same WinPE and PE drivers to access the hard drive in such a way.


    There's no place like 127.0.0.1

    Thursday, October 29, 2015 4:35 PM
  • Yes it does apply PE and reboot, but it's not applying the LiteTouchPE boot image that is created when you update your deployment share. Also when you initiate it from within an OS and it goes into PE it uses hardlink migration and doesn't actually wipe the disk clean.

    If this post is helpful please vote it as Helpful or click Mark for answer.

    Thursday, October 29, 2015 9:02 PM
  • Not sure what deal was, maybe something got corrupted at some point.  I don't think I had tested this since the 2013 Update 1 (redux) upgrade, but my Distribution Shares have most definitely been updated a few times since then.

    Whatever the case, deleting and re-adding (latest) surface drivers to the DS, then deleting my boot folder contents and updating the deployment share seems to have done the trick (tested once).

    Thanks!

    -Matt


    There's no place like 127.0.0.1

    Thursday, October 29, 2015 9:32 PM
  • In the future, if you select "Completely regenerate the boot images" MDT will do the work of deleting the boot folder contents and building new images from scratch. That's a good first option to take if you've made a few changes and the boot image doesn't seem to be working right.

    If this post is helpful please vote it as Helpful or click Mark for answer.

    Thursday, October 29, 2015 9:37 PM
  • In the future, if you select "Completely regenerate the boot images" MDT will do the work of deleting the boot folder contents and building new images from scratch. That's a good first option to take if you've made a few changes and the boot image doesn't seem to be working right.

    If this post is helpful please vote it as Helpful or click Mark for answer.

    I always use that option.  Just an old habit of deleting everything first, just to make sure, from previous versions.

    What's odd is that it was only not working on the Surface Pro 3's.  Every other UEFI workstation and laptop were loading from it fine.

    And what really threw me off, was that the failure was happening after clean / diskpart / format, AND after the image was deployed successfully.  Only after that was "E" suddenly missing.  To me that meant WinPE was working.  I'll have to put a little more effort into understanding the entire process some time soon.

    Thanks again for your help.

    -Matt


    There's no place like 127.0.0.1

    Friday, October 30, 2015 3:57 AM