Network Driver Problems? No Problem!
Practical, copy-ready step-by-step for techs: boot a VM to Local Drives (work on the image), run SDI to grab network driverpacks, use pnputil to add/install the .inf files, snapshot the image, then run ggRock’s Add New Hardware flow and choose Let Windows detect for drivers. 🚀
Short version: Boot target image on a VM into Local Drives mode (Enable keep writebacks) → install/run SDI and download/select network packs →
pnputil /add-driver "C:\path\to\drivers\*.inf" /subdirs /install→ shut down → save snapshot → run Add New Hardware and pick Let Windows detect when prompted.
References (most useful sources)
Snappy Driver Installer (download / Lite/Full / settings).
ggRock product & admin docs / overview of Machines, Images, Snapshots and VM workflows.
Microsoft PnP utility (
pnputil) docs and examples.Demo: “Add New Hardware Wizard” (shows the ggRock/WIN Add Hardware flow).
Goal
Install up-to-date network drivers into a ggRock system image so any machine using that image will have the correct NIC drivers available on first boot.
Preconditions
You have admin access to the ggRock WebAdmin and to the VM you’ll use to modify the image.
You know which PC Image (System image / Image slot) you will update.
You have a working copy of Snappy Driver Installer (Lite or Full) available to the VM (download from SDI site).
Full step-by-step
1) Prepare: choose the image & boot a VM into Local Drives mode
In ggRock WebAdmin → Machines, select or create a Virtual Machine that targets the System Image you want to update. Use a VM so you can install drivers before taking a snapshot.
Boot that VM to Local Drives mode (so it boots the image locally instead of PXE diskless mode). This makes the VM mount the image as a boot drive you can modify. (If your setup uses a VM bridge or a dedicated VM host, use the normal VM power controls in ggRock to start the VM into Local Drives).
Why Local Drives? Working on the image locally means changes (installed drivers) are written into the image and can be snapshotted/committed for roll-out.
2) Install Snappy Driver Installer inside the VM
On the VM (while booted into the target image), download SDI (Lite if you wish to download smaller driver indexes, Full for offline packs) or copy a predownloaded SDI folder to the VM. The official site and download pages are at http://sdi-tool.org .
Extract/run SDI as Administrator. In SDI choose the large network driver packs you need (or the Full pack if you want everything). Let SDI download/extract the selected packs locally — note that full packs can be tens of GB.
Tip: SDI stores extracted drivers under its program folder (look for a drivers or update\…\drivers folder). Make note of that path (you’ll point pnputil at it).
3) Install drivers into the image with pnputil
You have two safe options: (A) run a single recursive pnputil command to add all available .infs and attempt to install matching drivers now; or (B) test single vendor .infs first.
A — Quick recursive add & install (one line)
Open an elevated Command Prompt (Admin) or Windows Terminal (Admin) inside the VM and run:
pnputil /add-driver "C:\Path\To\SDI\drivers\*.inf" /subdirs /install/subdirs= recurse into vendor subfolders (handy for SDI layout)./install= attempt to install for matching devices immediately.
(Morepnputilexamples and syntax: Microsoft docs). (Microsoft Learn)
PowerShell loop (optional):
# Run in an elevated PowerShell window
$DriverPath = 'C:\Path\To\SDI\drivers'
Get-ChildItem -Path $DriverPath -Filter *.inf -Recurse -File |
ForEach-Object {
Write-Host "Adding $($_.FullName)"
pnputil.exe /add-driver "$($_.FullName)" /install
}
Notes & caution:
Installing every INF from a massive pack risks adding drivers you don’t want — test a single NIC first. Use targeted installs for unknown hardware.
Unsigned drivers or missing
.catfiles can cause install failures — check signatures if necessary.
4) Shut down the VM and save a snapshot of the image
From inside Windows (VM): cleanly shut down (
Start → Power → Shut down) once driver installs finish and you’ve verified NICs work.In ggRock WebAdmin, save a snapshot (commit the snapshot for that image/VM). The ggRock Images / Snapshot workflow allows you to capture the current state so it can be deployed to clients. If your environment uses “Writebacks” or snapshot naming conventions, follow your site standard naming (e.g.,
2025-10-07_NIC-update).
If you prefer, take a second backup copy/export of the snapshot for safe-keeping.
5) Run the ggRock Add New Hardware process (install device instances)
In ggRock WebAdmin open the Add New Hardware wizard for the image you just snapshotted (or for the target machine that will use the image). This wizard steps through adding devices and letting Windows associate drivers. (See demo video of the Add New Hardware Wizard for reference).
When the wizard presents the list of drivers for a hardware item, choose “Let Windows detect” (or the option shown that lets the OS automatically search and pick the best driver from the driver store). This will let the drivers you added to the driver store (via
pnputil) be selected and applied to the device instance.
Why this step matters: pnputil puts packages into the Windows driver store; Add New Hardware / Plug-and-Play will then match the store drivers to hardware IDs when the OS detects the device instance. That’s how you make sure the snapshot’s driver store is actually used by the installed devices.
Troubleshooting notes
If
pnputilreports missing files or fails: confirm.inffiles and required.catfiles exist in the driver folders (SDI packs sometimes contain nested archives — extract fully).If SDI failed to extract to a network share, copy the full SDI driver folder to a local drive and rerun
pnputil. SDI and some archive tools can behave oddly from NAS mounts.If you see BSODs or unexpected behavior after bulk installs: revert to the pre-change snapshot, then try a targeted driver install path. Always keep a known-good snapshot before bulk driver work.
Quick checklist (paste into a ticket template)
Pick target image and start VM in Local Drives mode.
Download / copy SDI to VM and run it as Admin; download selected network packs.
Confirm path to extracted drivers (note
C:\Path\To\SDI\drivers).Test a single NIC INF:
pnputil /add-driver "C:\...\vendor.inf" /install.Bulk import if testing OK:
pnputil /add-driver "C:\...\*.inf" /subdirs /install.Shut down VM cleanly.
Save snapshot in ggRock (Images / Snapshots).
Run Add New Hardware wizard; pick Let Windows detect to let the store drivers attach to device instances.
Boot a client with the new snapshot and validate NICs & connectivity.
Example commands (copy/paste)
REM Install single driver (test)
pnputil /add-driver "C:\SDI\drivers\intel\0\intel_net.inf" /install
REM Bulk recursive add/install
pnputil /add-driver "C:\SDI\drivers\*.inf" /subdirs /install
REM List driver packages in store
pnputil /enum-drivers
REM Remove driver (when you know oem#)
pnputil /delete-driver oem12.inf /uninstall /force(Or use the PowerShell loop shown above if you want per-INF output.)
Final tips
Keep the SDI Full pack offline copy on your tools server if you maintain many sites — saves time for future NIC updates. SDI Full packs are large; Lite is better if you only need a few drivers.