Solved by myself.
Inject the USB 3.0 drivers into the Windows PE image. Then it is able to detect the USB 3.0 hub for the traget OS.
Wish I would have searched this properly last week! Good catch - I had a friend look into this and he actually found the why behind the fix.
The USB 3 hub and devices are special. The USB 3.0 **controller** is connected to, and available on the PCI bus, which WinPE can see. That means, by default, WinPE will be able to see the controller. That means HIIClient can see the controller and find, download and add a driver for the USB 3.0 controller. That matches your results and the results of HII.
However, the USB 3.0 hub is on a special USB 3.0 bus. The bus is called NUSB3. WinPE **CANNOT** see the NUSB3 hub by default. That is because it is "behind" the USB3 controller. The USB3 controller runs the bus and all the USB 3 hubs and devices. That means it cannot be seen unless the USB3 controller has a driver installed and running. WinPE **DOES NOT** have a USB3 controller driver available by default. That means when HIIClient.exe asks WinPE what devices are connected, WinPE will not return information about the USB3 hub. Because there is no USB3 controller driver, the bus (and any devices connected to it) cannot be seen. WinPE will return only information about the USB3 controller, which is on the PCI bus.
If you get a Windows 7 32-bit USB3 **Controller** driver, and add it to WinPE, then when WinPE starts up, it will be able to load the driver for USB3 controller. Once that is loaded up, THEN WinPE can see the NUSB3 bus, and subsequenty the USB3 hub. Since WinPE can now see it, HIIClient will get that information, download the driver and it will be installed when Windows boots up.
Get a Windows 7 32-bit driver for the USB 3 Controller. Add it to WinPE, the same way you would add an MSD or NIC driver. There is button in the console. Once it is added to WInPE, update the WinPE image on the PXE representatives. Then run HIIClient again. If you added the correct USB3 controller driver, it will be able to see the hub and will download the drivers for both the hub and the controller.
I hate to dig up an old thread, but could someone enlighten me on how to inject the USB 3.0 drivers in the the WinPE image?
1- On a PC with Windows AIK installed, open CMD as Administrator.
2- Run the following commands from the root of C:\ or whichever drive you will be mounting the drive on. If you use something other than C:\ make sure to modify the commands as listed.
DISM /Mount-Wim /WimFile:"<location of WIM file>" /index:1 /MountDir:C:\Offline
**The Image is now mounted in the C:\Offline folder.
3- Locate the drivers to be injected and copy them to a convenient location. In this example mine are in C:\Drivers, then run the following
DISM /Image:C:\Offline /Add-Driver /Driver:C:\Drivers /Recurse
**The drivers will now be injected into the image.
4- Now we need to unmount and commit the changes to the image.
DISM /Unmount-Wim /MountDir:C:\Offline /Commit
**The image has now been unmounted, and saved to the original Boot.wim file.
In my post above your reply. You don't add the driver to the PE - the PE cannot detect the USB3 hardware anyway.
Short version is: In the HII driver tool -
- Locate the standard USB driver for the computer.
- Assign the driver file for the USB3 driver to your standard driver
- When HII runs the DISM scan on your target PCs it will detect the standard USB and save the driver file to the C:\Windows\LDDriverStore on your target PC
- When the PC reboots after CTOS it will look for drivers for all of the devices it has
- Windows supplies a standard USB driver so that one will be in the stock OS build
- Since you fooled it into copying the USB3 driver over earlier it will be there when the system needs to load it.
I have found another way, which is to run HII in Post-OS Install and then again in System Configuration. This adds time to the image build process, but will pick up USB3 and anything else that doesn't get drivers during Post-OS Install.
I also found another way. I tried loading the drivers into the WinPE and running the HII again, neither worked. In the end, I added a step in the provisioning template to copy over the USB 3 drivers and then ran the PNPUtil found in the system32 folder and it updated the drivers and works correctly. So far I've only had USB 3 be an issue on 1 model of computer that we have (Optiplex 7040). I found information on doing it at calling WinSAT.exe w/provisioning fails, using the sysnative path was key in getting it to work since we use 64 bit windows.
Not having any luck with your suggestion. I injected the usb3hub x86 drivers on to the 32-bit WinPE. It does detect the drivers but it won't install the drivers during the HII task. On a Windows 7 x64 and Dell Latitude E7470 laptop. I do have both drivers on my folder x86 and x64. Redeployed the WinPE image to the PXE representatives with no luck. Any help would be greatly appreciated.
From within HII: Assign the Stock Windows USB to the driver you need. This will force the HII to load your driver and the DISM to deal with it. Once the system boots the first time it can get the stock USB driver from the INF folder and the USB 3.0 driver from LDDriverStore. If that does not work you can do as I and abandon HII altogether for a WMI process that copies the drivers from your preferred server onto the target and then manually executes the DISM set into the WinPE on the target. Elegant...