I am having problems getting the pnputil command to work on my system. Maybe I misunderstand how it is to work.
Here is what I am doing. I am booting a Windows Server 2012 environment from and iSCSI LAN. During installation, because my NIC driver is not part of the Windows distribution, I load the driver so I can recognize the iSCSI LUN. Works fine. I complete the install and all is well. However, I have other NICs on my system that all use the same driver. If I go into Device Manager I can manually update each NIC that shows a problem by simply updating each NIC with the driver that is already on the system. So I am sure the driver is being properly recognized by Windows and the NICs work fine after updating their driver.
But, I don't want to manually go through an update each NIC. I would rather issue the command:
pnputil -i -a driver.inf
Here is what happens on my system.
Is there something special required in the .inf file that is required for it to work properly with pnp? Part of my curiousity on this is that I seem to recall that I tried injecting the an earlier version of this driver into a .wim image, and when I installed from that image, it did not get installed automatically, i.e. I still had to manually update the NIC drivers.
Any pointers greatly appreciated.
When I do a pnputil -a enic6x64.inf I get this back.
Microsoft PnP Utility Processing inf : enic6x64.inf Driver package added successfully. Published name : oem1.inf Total attempted: 1 Number successfully imported: 1
I can't find any combination of entries that will allow me to enter anything but a valid file name for the pnputil -i portion of the command, i.e. it does not accept oem1.inf. According to the help file, the only valid combination with the -i switch is in conjunction with the -a switch.
If I do a pnputil -e, I get this back.
Microsoft PnP Utility Published name : oem1.inf Driver package provider : Cisco Systems, Inc. Class : Network adapters Driver data and version : 10/31/2012 18.104.22.168 Signer name : Microsoft Windows Hardware Compatibility Publisher Published name : oem0.inf Driver package provider : Microsoft Class : Printers Driver data and version : 05/21/2006 6.2.9200.16384 Signer name : Microsoft WindowsDoes the -i option only work if the driver is not already installed? Since I installed a copy during the boot process, the driver is installed on the system, but for whatever reason, the Windows PnP is not picking it up when it is detecting all the other NICs that use the exact same driver. I was hoping that this command could force PnP to reuse it. Maybe it's beyond the scope of this command and something needs to be changed in our inf file so that it operates correctly PnP?
Well, it is getting stranger. I built another system that booted locally instead of booting from iSCSI. Issued the pnputil command and it properly updated all the NIC drivers. The difference was that instead of using the .inf file that was on the system, I read it in from my distribution CD.
So, I figured, let's try it on one of the iSCSI booted systems by using the file directly from the CD (yeah, I know, the files are the same, but I'm grasping). Same results as before - failed to install the driver on any of the devices in the system. Well that sort of struck me because I had already manually updated all the drivers, so of course none would be installed. Therefore, I added another NIC to the iSCSI booted system, used the file from the CD, and still ended up with the same results.
What appears to be happening is that pnputil works fine if the driver being reference has NOT been installed on the system for any device. If it does not find the device on the system, it works just hunky-dory.
Bug? As designed? Curious minds would like to know.