In SCCM 2007 & 2012 if you created an offline task sequence, you could export the contents to a HDD and run locally.
When you did this you would get message:
Setting Launch Mode To: CD
However from SCCM 2012 SP1 and later that stopped working, and you get error message in smsts.log:
Launch Mode Is Not Defined
The proper method to get this fixed is via a support case from Microsoft.
This is provided just as an example of how such issues can also be patched yourself, of course this will not be supported by vendor. In this case I used IDA Pro (You could also use OllyDbg, which is free)
First I checked the Imports table, and typed GetDriveType, as this was most obvious Windows API to be used in this scenario.
Double clicking GetDriveTypeW brought me to this section, from which I right clicked and chose Jump to xref to operand
We find four references to this function
Selecting the first function it looks like we found what we were looking for, we could see there was a conditional jump (JZ = jump if zero) selecting UFD (The drive type if running TS from USB drive)
I selected the jz short loc_426101 line and chose Edit –> Patch Program –> Change Byte
I changed the 74 (Opcode for JZ) to EB (opcode for jump short)
Now it will always detect itself as running from UFD
Finally I wrote the patch back to the file via Edit –> Patch Program –> Apply Patches to input file
Once the task sequence had been exported to the HDD, I then overwrote TsmBootstrap.exe with this version, and it functioned correctly.