Windows 10 driver injection doesn't install during sysprep
-
@jdd49 I recommend placing inf drivers in C:\Windows\inf (you can put them in a subfolder) in that case, to test it out (and just in general it’s a good idea), you can even remove it with SetupComplete since they’re installed before OOBE phase (on first boot).
You can grab driverpacks online (so essentially almost every NIC is supported)
-
@george1421 said in Windows 10 driver injection doesn't install during sysprep:
Yes I’ve seen this before.
You need to add this to the unattend.xml file for Win10
<settings pass="offlineServicing"> <component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DriverPaths> <PathAndCredentials wcm:action="add" wcm:keyValue="1"> <Path>C:\Drivers</Path> </PathAndCredentials> </DriverPaths> </component> </settings>
Or where ever your install files are kept. The registry change was last officially supported in XP, and with Win7 they did keep that function in the system for legacy reasons. With Win10 that option was removed. You MUST use the unattend.xml method now.
#wiki worthy, should probably go here somewhere: https://wiki.fogproject.org/wiki/index.php?title=Auto_driver_Install
-
@Quazz Unfortunately I have tried that too. Still the same result. Drivers not installed in time for domain join, but upon next reboot they are installed. This all worked fine in Windows 7, I’m thinking there just might not be any workaround for Windows 10.
-
@jdd49 That’s impossible, there’s obviously something else going on that’s causing your problems. Drivers in the inf folder are installed on first boot, before OOBE. Are they actually inf drivers? Not cab?
-
Yes they are inf, if not it wouldn’t work for Windows 7 either, as far as I know.
-
@jdd49 Correct, but it was my understanding you were using a different location to house your drivers on Windows 7?
-
@jdd49 I will test/disprove if it is working this afternoon. I’ll grab a o7040 and rename the driver directory on the fog server which should block all drivers being installed then image with win10. Our reference image only has the winpe dell drivers installed. Let me confirm if all of the hardware is detected.
-
@Quazz Same location for both. Windows 7 just copy drivers to c:\windows\inf works fine. Doing the same for Windows 10 does not.
-
@jdd49 Do you know for certain it’s the driver at fault here? Because I use the inf folder method on all my images and it always works for me.
There are other things that could cause domain joining (I’m assuming done by FOG client?) not to work properly.
-
@jdd49 I ran into this same problem beginning with Windows 8 not recursively pulling from folders I added to “c:\windows\inf”.
My later tests using “offlineServicing” were only partially successful. Many modern devices have devices hanging off devices, which the “offlineServicing” doesn’t seem to want to wait around for to detect and install once the parent device is fully enumerated. If there was a way to force “offlineServicing” to trip more than once that’d be great but …
Now I’m working on my first large scale Windows 10 image deployment; we’ll see what happens.
-
@Quazz Fairly certain. Domain join is being done by the sysprep answer file, not the fog client. Drivers are not installed in time for the sysprep answer file to join the domain, but on the next reboot they do get installed.
-
Thanks everyone for the suggestions. I’ll continue testing and report back if I find a solution.
-
@jdd49 FWIW: What hardware are you using?
-
@george1421 how did the testing go?
I plan to start checking out windows 10 deployments myself and had seen you mentioned adding the sysprep part in your post download script post
Hope to test this the wknd -
@falko I got pulled off because we have a sick VM host server.
Also considering if the unattend.xml fails to use DISM /online in the setupcomplete.cmd to inject the drives that got missed (assuming there was any). One other thing that we do is inject the dell cab winpe pack into the reference image before image capture. That dell cab driver pack contains network and storage drivers. So those are “built into” our reference image from the start.
Again I’m taking jdd49 experience that its not working and trying to come up with a plan before I touch the system.
-
Hi,
First, informations about my stuff :
Server :
FOG Version : Running Version 1.3.5-RC-8 ; SVN Revision: 6066
OS : Debian GNU/Linux 8Specifications :
- all images are on a Synology NAS storage : mounted with NAS_ip:/images
- french user
I discover recently the drivers injection method with scripts fog.postdownloadscript and fog.drivers.
With Win7x64, it’s work by using the hack registry method to add C:\Windows\DRV in the DevicePath.
I read in this topic some people have troubles to inject drivers on a Win10x64 computer using this method.
I just realize quick test with 3 models (Optiplex7010, 820G1, HP8000) and it’s seem to works … :
Just after the deploy, i check if the C:\Windows\DRV contained files, check if the registry hack has been realize and i check if all drivers are installed …Optiplex7010 :
- C:\Windows\DRV : OK
- registry hack : OK
- all drivers are installed
HP8000 :
i didn’t find Win10x64 drivers for this computer BUT after the deploy, i can see the registry hack has work …HP820G1:
- C:\Windows\DRV : OK
- registry hack : OK
- some drivers are absents … maybe i forgotten some files when i created the folder drivers on NAS …
To conclude, i ask some questions to myself … this method work or this method NOT work for Win10x64 ? That’s is the question !
Enc : Screenshot of my Optiplex7010 results …
link text -
@Jonathan-Cool said in Windows 10 driver injection doesn't install during sysprep:
To conclude, i ask some questions to myself … this method work or this method NOT work for Win10x64 ? That’s is the question !
I will tell you that you need to debug that HP8000 a little better, the scripts will copy the files if everything is correct.
That is different than if windows oobe will load the drivers. Step 1 is getting the drivers onto the target computer. Step 2 is telling windows where to find the drivers.
The registry hack will work for Win7.
The registry hack will NOT work for Win10. For Win10 you must update the unattend.xml file to tell it where to look for the drivers. -
i think there is a misunderstanding.
The HP8000 is an old computer and there is no drivers for the Win10 OS.
So, I didn’t copy any files in my FOG Drivers folder.
I ran a task with this computer just ONLY to see if the reg hack work. -
@Jonathan-Cool said in Windows 10 driver injection doesn't install during sysprep:
So, I didn’t copy any files in my FOG Drivers folder.
I ran a task with this computer just ONLY to see if the reg hack work.Not a logical test since: no files copied == no drivers loaded == reg key added but no valued added because nothing to load.
But I understand the logic behind your test.
-
@george1421 @Wayne-Workman I am seeing this issue too on Win 1709 EDU. Sysprep isn’t looking in C:\Drivers even though unattended file is telling it to. Windows Update picks up some drivers but not all. If I go into Device Manager and manually point to C:Drivers it will load the driver for that one device.
What am I missing?
<settings pass="offlineServicing"> <component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DriverPaths> <PathAndCredentials wcm:action="add" wcm:keyValue="1"> <Path>C:\Drivers</Path> </PathAndCredentials> </DriverPaths> </component> </settings>