we are migrating all our physical Windows deployments from unattended deploymenets (using setup.exe) to WIM based System Packages, but are facing a major issue right now.
We use a generic WIM Image for all our unattended deployments (HP, DELL, VMWare (when no template deployment is available))
This WIM image has a base set of drivers on-board.
So the sequence we are seeing done by BSA is roughly as following:
1.) Target boots WinPE and runs stuff like pre-disk-scripts (HW-config), drive configuration etc.
2.) The WIM image is layed down to the target using imagex /apply ( we already raised a ticket to do that via dism instead)
3.) Then BSA copies the drivers from the SysPkg. PnP Path to c:\drivers
4.) The generated unattended.xml is copied to c:\windows\...
5.) Then the target boots from local disk and "should" start the mini-setup with the unattended.xml, but instead we receive a Blue-Screen on some HW models, as the layed down image is missing certain drivers.
We opened a case with Microsoft on this one and got the following reply.
"Since you are using imagex to apply the image, not only we have to copy the answer file, but also apply the unttend.xml using DISM command. We have to make this change in the deployment process to ensure the drivers are injected to the offline image."
So copiyng the drivers to c:\drivers is not enough, they need to be properly injected int the Image before the system is able to boot from the local disk.
I already raised a ticket on this isssue, but wanted to ask around if somebody is facing a similiar problem and found a solution to this.
Microsoft has documented this approach here https://msdn.microsoft.com/en-us/library/hh825129.aspx
"If you are updating device drivers using an unattended answer file, you must apply the answer file to an offline image and specify the settings in the offlineServicing configuration pass."
The generated unattend.xml from BSA has the offlineServicing section defined correctly, the issue really seems to be that the setup is not started from the winPE phase, but is initiated after a local boot attempt.