At first I wasn’t going to post anything about this…then I swallowed my pride and hope this would assist the “greater good”.
We went through TAP with Windows 10 and (of course) used the Upgrade Task Sequence Sample that Microsoft provided. It never really quiet worked right, but for our little pilot (~100 machines) it did it’s job. Recently, we went through our big jump to SCCM 1606 directly from 2012 R2 SP2 and now that we were “supported” with In-Place Upgrades I wanted to go through and update the Task Sequences we had been using to an official process that we could safely offer out the remaining 60k+ systems still running Windows 10 RTM and below.
I updated the Task Sequence, got all the custom steps in place where they needed to be but saw failure after failure. Digging in the logs I saw this:
Execution engine result code: Reboot(2)
Oddly enough this was coming from a “Restart Computer” step and as we all know Windows error 2 typically means “File not found”. Even more odd, if I’d reboot the computer, the Task Sequence would pick back up and resume right where it left off. I ran through various other workarounds including a “Run Command Line” doing a shutdown -r, as well as trying Variable dumps, procmon traces, etc…
When I brought up the issue to some of our SCCM contacts at Microsoft, they too were clueless except for Rob’s comment: “I know they changed some of the reboot handling with the new client in 1606…”. Knowing that these test systems probably didn’t have the new client, I reverted the OS, and what do you know… Still running the 2012 R2 SP2 client…I updated the client, re-ran the In Place Upgrade Task Sequence and was met with 100% success!
It’s one of those things you feel so stupid for missing, yet you know you’ll think twice as hard the next time! Since I wasn’t able to find this via any normal search engine, I’m hoping you all are much smarter than I am! Hopefully this saves someone some troubleshooting!