A portable PowerShell utility for capturing, backing up, organizing, and reinstalling Windows drivers.
Built for IT technicians who deal with hard-to-find drivers: printers, scanners, USB serial adapters, dealership diagnostic equipment, label printers, specialty USB devices, legacy hardware, and anything else that can be difficult or impossible to find again later.
- Quick Start
- Menu Options
- Repository Structure
- Output Files
- How It Works
- Requirements
- Use Cases
- Roadmap
- License
- Download
Driver-Extractor-Toolkit.ps1andLaunch-Driver-Extractor-Toolkit.batinto the same folder (a USB stick or network share works well). - Double-click
Launch-Driver-Extractor-Toolkit.batand choose Yes when Windows asks for administrator rights.
The launcher bypasses the PowerShell execution policy for that run only, so there is no need to unblock the script or change any system settings. If Windows shows a security warning because the launcher came from the internet, choose Run (or More info, then Run anyway).
To run the script without the launcher, unblock it if it came from the internet, then open PowerShell as Administrator and run:
Unblock-File .\Driver-Extractor-Toolkit.ps1
powershell -ExecutionPolicy Bypass -File .\Driver-Extractor-Toolkit.ps1A Drivers folder is created next to the script the first time it runs. Every captured driver is saved there.
| # | Option | What it does |
|---|---|---|
| 1 | Capture New USB Device | Watches for USB devices being plugged in, then exports the drivers you pick |
| 2 | Capture Any New Device | Same as option 1, but for any Plug and Play device |
| 3 | Install Exported Driver | Installs a driver package from the repository |
| 4 | View Driver Repository | Lists every saved driver with its version and INF |
| 5 | Extract Installed Driver | Exports the driver of a device that is already installed |
| 6 | Exit | Closes the toolkit |
Watches for newly connected USB devices. There is no time limit: the screen updates live as devices appear, showing each device's driver status. When the device you want shows its driver, just type its number and press Enter. Pick several at once with commas (for example 1,3). Press Q at any time to return to the main menu.
Devices keep their numbers while you watch: a newly detected device is always added to the bottom of the list.
=========================================
CAPTURE NEW USB DEVICE
=========================================
New Devices Detected
--------------------
1. USB Serial Converter [oem45.inf, third-party]
2. USB Serial Port (COM3) [oem46.inf, third-party]
Select device(s), e.g. 1 or 1,3 (Q = main menu): 2
For each selected device it records:
- Device name, manufacturer, class, and status
- Hardware IDs and compatible IDs
- Driver provider, version, and date
- INF name and driver service
It then exports the driver package, generates an install script, and zips everything into a portable backup. If the device uses a built-in Windows driver, only the device information is saved (see Info-Only Captures).
Child devices created by a USB device (for example the COM port of a USB serial adapter, or the HID interface of a scanner) are also listed, so you can capture the exact device whose driver you need.
Works like option 1 but watches all Plug and Play devices, not only USB. Use it for:
- PCI and PCIe cards
- Bluetooth adapters
- Docking stations
- Network and graphics adapters
- Unknown devices
Installs a saved driver on the current machine.
- Lists every package that has driver files (info-only captures are skipped)
- Installs with Microsoft PnPUtil
- Supports packages that contain multiple INF files
- Reports success, failure, or a required reboot
Shows a quick inventory of saved drivers:
1. USB Serial Converter
Version: 2.12.36.4
INF: oem45.inf
2. Zebra Printer
Version: 8.6.5.0
INF: oem112.inf
3. USB Mass Storage Device
Version: 10.0.22621.1
INF: usbstor.inf
Info only (no driver files)
Exports the driver of a device that is already installed. It lists third-party drivers only, since built-in Windows drivers already ship with every copy of Windows.
Useful when:
- The hardware is no longer available
- The device is built into the system
- You want to preserve drivers before rebuilding a computer
- Vendor downloads are no longer available
Driver Extractor Toolkit
├── Driver-Extractor-Toolkit.ps1
├── Launch-Driver-Extractor-Toolkit.bat
└── Drivers
├── Zebra Printer
│ ├── DriverSummary.txt
│ ├── InstallDriver.cmd
│ ├── DriverBackup.zip
│ └── DriverFiles\
└── USB Serial Converter
├── DriverSummary.txt
├── InstallDriver.cmd
├── DriverBackup.zip
└── DriverFiles\
Each captured driver gets its own folder containing the files below.
A plain-text record of the device and its driver:
| Field | Field |
|---|---|
| Capture Date | Driver Provider |
| Computer Name | Driver Version |
| Device Name | Driver Date |
| Manufacturer | INF Name |
| Status | Service Name |
| Class | Hardware IDs |
| Instance ID | Compatible IDs |
It ends with an export result saying whether the driver files were exported, and why not if they weren't.
Example:
===========================================
DRIVER CAPTURE SUMMARY
===========================================
Capture Date:
9/28/2026 09:15 AM
Device Name:
USB Serial Converter
Manufacturer:
FTDI
Status:
OK
Class:
USB
Instance ID:
USB\VID_0403&PID_6001\A50285BI
-------------------------------------------
DRIVER DETAILS
-------------------------------------------
Driver Provider:
FTDI
Driver Version:
2.12.36.4
Driver Date:
3/15/2024
INF:
oem45.inf
Service:
FTDIBUS
-------------------------------------------
HARDWARE IDS
-------------------------------------------
USB\VID_0403&PID_6001&REV_0600
USB\VID_0403&PID_6001
-------------------------------------------
EXPORT RESULT
-------------------------------------------
Driver Files Exported: YES
The complete driver package, exported from the Windows Driver Store with pnputil /export-driver. It typically contains:
*.inf Setup information file
*.sys Driver binaries
*.cat Signed catalog file
*.dll Supporting libraries
A generated install script. Right-click it and choose Run as administrator to install the driver on another machine without the toolkit.
@echo off
net session >nul 2>&1
if errorlevel 1 (
echo This script must be run as Administrator.
echo Right-click InstallDriver.cmd and choose "Run as administrator".
pause
exit /b 1
)
echo Installing Driver...
pnputil /add-driver "%~dp0DriverFiles\*.inf" /subdirs /install
pauseA portable archive containing:
DriverSummary.txt
InstallDriver.cmd
DriverFiles\
Copy it to a network share, OneDrive, a technician toolkit, or long-term storage. Extract it anywhere and run InstallDriver.cmd to install.
When a device uses a built-in Windows driver, or has no driver installed yet, there is nothing to install. The toolkit still saves DriverSummary.txt with the device details and hardware IDs, but skips DriverFiles, InstallDriver.cmd, and DriverBackup.zip.
Drivers
└── USB Mass Storage Device
└── DriverSummary.txt
The hardware IDs in the summary are still useful for tracking down a vendor driver later.
Options 1 and 2 only capture devices that appear after monitoring starts. Docks, keyboards, and other peripherals that are already connected are ignored. If the device you want is already plugged in, unplug it and plug it back in while the toolkit is watching.
Start monitoring
↓
Take a snapshot of connected devices
↓
Plug in the device (as many as you like)
↓
New devices appear on screen with their driver status
↓
Wait until the driver shows
↓
Type the device number(s) and press Enter
↓
Export the driver packages
Some hardware installs several devices at once. For example, a dock might add:
Dell Dock USB Hub
Dell Dock Audio
Dell Dock Ethernet Adapter
The toolkit lists every new device and lets you pick the ones to capture.
Drivers are exported with pnputil /export-driver, the Microsoft-supported way to copy a package out of the Driver Store. PnPUtil maps the published name Windows gives the driver (such as oem45.inf) to the correct Driver Store folder and exports the full package.
Built-in Windows drivers (such as usb.inf or msports.inf) can't be exported, because they ship with Windows. When a device uses one, the summary says so and no files are exported.
| Label | Meaning |
|---|---|
oem45.inf, third-party |
A vendor driver. This is what the toolkit exports. |
usbstor.inf, built-in Windows driver |
Ships with Windows. Only device info is saved. |
no driver yet |
Windows is still installing the driver. Keep waiting. |
- Wait until the device shows a driver before selecting it. First-time installs, especially from Windows Update, can take a minute or more.
- USB flash drives and most keyboards and mice use built-in Windows drivers. They are good for checking that detection works, but only their device info is saved.
- Many devices create more than one entry. A USB serial adapter, for example, shows both the USB device and its COM port, often with separate drivers. Select both (such as
1,2) to keep the full set. - Running in the PowerShell ISE? Live key presses aren't supported there, so the capture screen asks you to type the device number(s), press Enter to refresh, or type Q to return instead. A regular PowerShell window is recommended.
- If Windows installs a generic driver, install the vendor driver first, then capture.
- Capturing the same device again replaces its previous export.
- Running from a mapped network drive (such as
Z:)? Programs running as administrator can't see drives mapped by your normal account, so open the folder by its network path (such as\\server\share\Toolkit) instead.
- Windows 10 (version 1607 or later) or Windows 11
- Windows PowerShell 5.1 or PowerShell 7+
- Administrator privileges
| Scenario | Why it helps |
|---|---|
| Enterprise IT | Archive drivers before reimaging systems |
| Help desk | Quickly preserve hard-to-find drivers from user computers |
| Printers | Capture manufacturer drivers for future deployment |
| Scanners | Archive barcode and specialty scanner drivers |
| USB serial adapters | Preserve FTDI, Prolific, and manufacturer-specific drivers |
| Automotive diagnostics | Store dealership and OEM diagnostic interface drivers |
| Industrial equipment | Preserve drivers for devices with limited manufacturer support |
| Legacy hardware | Archive drivers before vendor downloads disappear |
Finding drivers years after a device was deployed can be difficult or impossible.
Driver Extractor Toolkit builds a portable, organized driver repository directly from a working Windows installation. Rare and hard-to-find drivers become easy to archive, transfer, and reinstall on future systems.
Possible future improvements:
- Search drivers by VID/PID
- Tag driver packages
- Export and import the whole repository
- CSV inventory reports
- Automatic driver verification
- Device Manager screenshot capture
- Deduplicate driver packages
- Silent installation mode
- Driver package integrity validation
Use, modify, and distribute as needed.
No warranty is provided. Test all driver installations in line with your organization's change management and deployment policies.