So to me its not clear where its hanging during OOBE. If it was a driver issue, one would think that it would happen at the beginning of OOBE. Rebooting the system unexpectedly will throw an error on the reboot. Something about windows can’t continue, reboot to run setup or some nonsense like that. So with that said I would think it might be done with OOBE and maybe something in the setupcomplete.cmd, because that is the last thing OOBE does before the login prompt is loaded. So this is just a wild guess, but lets start the startupcomplete.cmd file started to execute, but got hung up before the pnputil or during the pnputil program was running. Rebooting the computer would then just bring you to the login prompt because OOBE was done.
So there is two ways to test this.
- Use a post install script to remove the setupcomplete.cmd file and see if it images without hanging.
- On a botched install, recopy the setupcomplete.cmd file and run it again using an elevated privileged account. See if it completes correctly.
I have seen (in earlier days), the pnptuil go to install an unsigned driver and pop-up with a dialog box saying its an unsigned driver and prompt the IT tech to accept this driver. Well the setupcomplete.cmd runs without a desktop so no one would be able to see the prompt or respond to it.
I also wonder if any of the log files in c:\windows\panther or where ever the unattend.xml file was would provide any help. I know it takes a masters degree to decipher the logs but they do tell you what was going on at the time.