Living Table of Contents
- MDT Tutorial: Prologue & Requirements
- MDT Tutorial Part 1: Installation
- MDT Tutorial Part 2: Initial Configuration
- MDT Tutorial Part 3: Imaging
- MDT Tutorial Part 4: CustomSettings.ini
- MDT Tutorial Part 5: Bootstrap.ini
- MDT Tutorial Part 6: Customizing Boot Media
- MDT Tutorial Part 7: Customizing Base MDT Template & ADK WinPE Template WIM
- MDT Tutorial Part 8: Unattend.xml
- MDT Tutorial Part 9: Logging
- MDT Tutorial Part 10: CustomSettings.ini Validation Testing & Troubleshooting Part 1
- MDT Tutorial Part 11: Troubleshooting Part 2: Windows could not parse or process unattend answer file [C:\windows\Panther\unattend.xml] for pass [specialize]. The answer file is invalid.
- MDT Tutorial Part 11: Troubleshooting Part 3: Windows could not parse or process unattend answer file [C:\windows\Panther\unattend.xml] for pass [specialize]. The answer file is invalid.
- MDT Tutorial Part 11: Troubleshooting Part 4: Task Sequence Variable is Being Overwritten
- MDT Tutorial Part 11: Troubleshooting Part 5: Invalid DeploymentType value “” specified. The deployment will not proceed.
- MDT Tutorial Part 11: Troubleshooting Part 6: Unable to mount the WIM, so the update process cannot continue
- MDT Tutorial Part 11: Troubleshooting Part 7: Non-Fatal OSD Errors & Warnings
What These Guides Are:
A guide to help give you some insight into the troubleshooting process in general.
What These Guides Are Not:
A guide to fix all issues you’re going to encounter.
We’re going to role-play a bunch of scenarios and try to work through them. Remember in math where you had to show your work? Well, what follows is like that which is why this post is [more than] a [little] lengthy.
Invalid DeploymentType value “” specified. The deployment will not proceed.
You enabled the Windows Updates steps in the Build & Capture Task Sequence so you can have a fully patched Windows 10 v1511 WIM.
And you also updated your CustomSettings.ini so that your Build & Capture VM would set all the properties/variables but not start immediately.
[Settings] Priority=MACAddress,GetAbbrModel,Build,Default Properties=OfficeCode,AbbrModel ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; BEGIN MACADDRESS SECTION ; This is my Windows 10 v1511 build & capture VM [00:15:5D:13:79:01] SkipTaskSequence=NO TaskSequenceID=BC151164ENT SkipComputerName=NO OSDComputerName=BnC-#UCase(Right(Replace(Replace("0000000%SERIALNUMBER%"," ","",1,-1,1),"-","",1,-1,1),8))# SkipDomainMembership=NO JoinWorkgroup=BnC-WrkGrp SkipUserData=NO SkipComputerBackup=NO ComputerBackupLocation=NETWORK BackupDir=Captures\%OSDComputerName% BackupFile=%OSDComputerName%_%TaskSequenceID%_#year(date) & "-" & month(date) & "-" & day(date) & "_" & Hour(Now()) & Minute(Now())#.wim SkipProductKey=NO SkipLocaleSelection=NO SkipTimeZone=NO SkipAdminPassword=NO SkipCapture=NO DoCapture=YES SkipBitLocker=NO SkipSummary=NO ; END MACADDRESS SECTION ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; BEGIN GETABBRMODEL SECTION ; Lets get the abbreviated model [GetAbbrModel] UserExit=jgp_GetAbbrModel.vbs AbbrModel=#GetAbbrModel# ; END GETABBRMODEL SECTION ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; BEGIN BUILD SECTION ; Set things here for use below [Build] OSDComputerName=%OfficeCode%-%AbbrModel%-#UCase(Right(Replace(Replace("0000000%SERIALNUMBER%"," ","",1,-1,1),"-","",1,-1,1),8))# ; END GETABBRMODEL SECTION ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; BEGIN DEFAULT SECTION [Default] OSInstall=Y ; Skip Screen: Task Sequence SkipTaskSequence=NO ; Skip Screen: Computer Details SkipComputerName=NO ; Skip Screen: Computer Details SkipDomainMembership=NO ; Skip Screen: Move Data and Settings & User Data (Restore) SkipUserData=NO ; Skip Screen: Computer Backup SkipComputerBackup=NO ; Skip Screen: Product Key SkipProductKey=NO ; Skip Screen: Locale & Time SkipLocaleSelection=NO KeyboardLocale=en-US UserLocale=en-US UILanguage=en-US ; Skip Screen: Locale & Time SkipTimeZone=NO ; https://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx TimeZoneName=Eastern Standard Time ; Skip Screen: Administrator Password SkipAdminPassword=NO ; Skip Screen: Capture Image SkipCapture=NO ; Skip Screen: BitLocker SkipBitLocker=NO ; Skip Screen: Ready to begin SkipSummary=NO ; Skip Screen: R SkipFinalSummary=NO SLShare=%DeployRoot%\TSLogs SLShareDynamicLogging=%DeployRoot%\TSLogs\%OSDComputerName% EventService=http://ITF1MDT01:9800 ; END DEFAULTSECTION ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Having learned your lesson from last time, you test the updated CustomSettings.ini & spent a few minutes verifying the output in the console. Feeling confident, you boot into WinPE and when the Wizard I displays, verify all the defaults are set correctly.
You click begin and almost immediately the process halts with an obscure error:
You’d be forgiven for thinking you’ve made a mistake and I’d be willing to bet you’d figure this out but that road wouldn’t be fun.
- Easiest: Update your CS.INI with
- Hardest (and arguably unsupported?):
- Open DeployWiz_ProductKeyVista.vbs in the Scripts directory
if oProperties("DeploymentType") = "UPGRADE" then
If Property("DeploymentType") = "UPGRADE" then
- Save the file and try again
Note: There appears to be a plausible explanation of what’s happening here if you’re interested.
Since you rarely need to prompt for a Product Key – especially considering you can stick it in the unattend.xml or you go down the easy path and now the image kicks off.
Hopefully these examples will help give you an idea of the overall troubleshooting process. Most of the time the problems you’ll encounter will be caused by a typso, order of operations or a ‘known issue’ that requires a specific process to be followed.
As you make changes to your environment, here’s what I recommend:
- Be diligent about keeping a change log so you can easily backtrack
- Backup your CS.INI or Bootstrap.ini before you make any changes
- Backup your ts.xml or unattend.xml (in DeploymentShare\Control\TaskSequenceID) before you make any changes
- Introduce small changes at time with set checkpoints in between and set milestones markers where you backup core files (e.g cs.ini bootstrap.ini ts.xml unattend.xml etc) to help minimize
if when you do run into some turbulence, upload relevant logs (at least smsts.log but be prepared to submit others depending on the issue) to a file sharing service like OneDrive, post on TechNet then give a shout to your resources on Twitter.
Good Providence to you!