Help with Win10 Driver injection
-
@kyle.heath The answer then was in my previous post.
Look at your unattend file. Where are you telling the OOBE process to look for drivers? This needs to be consistent to where the drivers really are.
Also a comment on your drivers because you didn’t mention what hardware you are using. These drivers need to be in inf form and not compressed installers (i.e. in .exe form). The compressed installers will not execute during oobe.
-
It looked like you added that section to the offlineServicing area, not the OOBE. Right now I added this to the offlineServicing area.
Under oobeSystem I only have
I’m guessing I need to add something additional to the oobeSystem area in my unattend file. My drivers are added to C:\Windows\Drivers in this folder format. Will this not work? Do i need to go into each folder and just add the .exe to my FOG Server? I’m new to this, so any help is appreciated.
-
@kyle.heath According to the prior post, you have added the second part to your xml file. This would mean your OOBE system is looking at driver path c:\windows\DRV?
Anyway you could post the full unattend (blocking out passwords and product keys as/where required?)
-
@Tom-Elliott I put C:\Windows\Drivers in my unattend, why would it look at C:\Windows\DRV ??
-
@Tom-Elliott Here is the full unattend
<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="generalize"> <component name="Microsoft-Windows-PnpSysprep" 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"> <DoNotCleanUpNonPresentDevices>true</DoNotCleanUpNonPresentDevices> <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls> </component> <component name="Microsoft-Windows-Security-SPP" 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"> <SkipRearm>1</SkipRearm> </component> </settings> <settings pass="specialize"> <component name="Microsoft-Windows-Deployment" 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"> <ExtendOSPartition> <Extend>true</Extend> </ExtendOSPartition> </component> <component name="Microsoft-Windows-Security-SPP-UX" 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"> <SkipAutoActivation>true</SkipAutoActivation> </component> <component name="Microsoft-Windows-Shell-Setup" 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"> <ComputerName>*</ComputerName> <CopyProfile>true</CopyProfile> <RegisteredOrganization>Microsoft</RegisteredOrganization> <RegisteredOwner>AutoBVT</RegisteredOwner> <ShowWindowsLive>false</ShowWindowsLive> <TimeZone>Eastern Standard Time</TimeZone> <ProductKey>Windows 10 Product Key</ProductKey> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-International-Core" 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"> <InputLocale>en-us</InputLocale> <SystemLocale>en-us</SystemLocale> <UILanguage>en-us</UILanguage> <UserLocale>en-us</UserLocale> </component> <component name="Microsoft-Windows-Shell-Setup" 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"> <AutoLogon> <Password> <Value>Password</Value> <PlainText>false</PlainText> </Password> <Enabled>true</Enabled> <LogonCount>1</LogonCount> <Username>CFA</Username> </AutoLogon> <OOBE> <HideEULAPage>true</HideEULAPage> <NetworkLocation>Work</NetworkLocation> <ProtectYourPC>1</ProtectYourPC> </OOBE> <UserAccounts> <AdministratorPassword> <Value>Password</Value> <PlainText>false</PlainText> </AdministratorPassword> <LocalAccounts> <LocalAccount wcm:action="add"> <Password> <Value>Password</Value> <PlainText>false</PlainText> </Password> <Description>Local Administrator</Description> <DisplayName>CFA</DisplayName> <Group>Administrator</Group> <Name>CFA</Name> </LocalAccount> </LocalAccounts> </UserAccounts> </component> </settings> <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:\Windows\Drivers</Path> </PathAndCredentials> </DriverPaths> </component> </settings> <cpi:offlineImage cpi:source="wim:c:/users/kyle.heath/desktop/windows%2010/sources/install.wim#Windows 10 Education" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> </unattend>
-
@kyle.heath said in FOG Post install script for Win Driver injection:
@Tom-Elliott I put C:\Windows\Drivers in my unattend, why would it look at C:\Windows\DRV ??
Because the picture you previously posted clearly says c:\windows\drv
-
-
@george1421 In my unattend or in the script picture I posted?
-
@kyle.heath The picture from your initial post.
But that aside. Are you syspreping the reference system? When you invoke the sysprep command are you pointing to the xml file you referenced below?
This process does work, I’m using it today (still).
-
Yes I’m using these two commands on my reference system.
cd c:\windows\system32\sysprep
sysprep.exe /generalize /oobe /shutdown /unattend:unattend.xmlI then select upload task in FOG and upload my image.
Right now I am using amd64_Microsoft-Windows-PnpCustomizationNonWinPE_Neutral. Should I be using amd64_Microsoft-Windows-PnpCustomizationWinPE_Neutral instead. I’m still confused as to how my unattend file says DRV when I have it saying Drivers
-
@george1421 Also those 2 pictures I posted on my initial post are YOUR pictures from the beginning of this. I referenced those when I was asking if I needed to add both of them to my unattend.
-
First I would put the unattend.xml file in C:\Windows\Panther windows will look there first. Then when you call sysprep include the full path to the unattend.xml file. There is no guarantee that will be the current directory during instllatio. Are you sure other elements of your unattend.xml file processing? Is it just driver injection that is failing?
You are using the right “amd64_Microsoft-Windows-PnpCustomizationNonWinPE_Neutral” location. The other one "amd64_Microsoft-Windows-PnpCustomizationWinPE_Neutral " is used for the winpe environment as if you were using MDT to deploy the image to the target computer. .
-
@george1421 Yes other parts of my unattend are working…the main thing being windows activation. I had my unattend in C:\Windows\System32\Sysprep. I can move it to C:\Windows\Panther if you think that makes a difference. It’s just the driver injection that’s failing. It’s moving them to the computer and putting them in a C:\Windows\Drivers folder, but not installing. I have them on the FOG server in folders. Do I need to remove the .exe from each folder (network, storage, input, audio) and put only that on the FOG Server.
-
@kyle.heath OK, what hardware are you deploying to?
Also please show me a screen shot or directory tree of how you have your drivers installed in c:\windows\drivers. I’m interested in seeing if your have the drivers in inf format.
-
@george1421 I’m deploying drivers to a Dell Latitude 3570. Here is a SS of what it looks like after the image is deployed. The drivers are there in folders, but they are not installed. I know this because I pointed a missing driver to this folder and it installed fine. It’s just not doing it during sysprep for some reason.
-
@kyle.heath I think, then, what you’re running into (possibly?) is the cart before the horse.
I ran into similar issues, where the installation would run through and install some drivers, but not all. Things like USB devices were not installing because the chipset was being installed after the usb device was installed.
Of course, there’s better ways to handle this, but my fix was to have the setup script run through the installation twice by running dpinst within the directory.
-
@Tom-Elliott So in the script I would need to have it run twice using dpinst…sorry but I’ve never used dpinst so I’m not sure what it is. How would I go about doing this?
-
@kyle.heath I don’t have an example, but i had to find the dpinst binary.
I placed it in the directory where the drivers were found.
I needed a dpinst.xml file too (which just told the dpinst binary how to run without my having to intervene).
-
I’m currently deploying WIn10 to an o920 just to confirm its still working as intended. I would have been done sooner but I had a forked up FOG server this AM.
-
@george1421 Ok please let me know if it still works. I’m deploying the image again, this time with sysprep in Panther. I’ll let you know if that changes the outcome.