Adding printers on Windows sucks. prinstall fixes it.
One command. The right vendor driver, pulled from the Microsoft Update Catalog. Installed.
What it does
Built for MSP technicians running it locally or through RMM remote shells.
Multi-method discovery
TCP port probe, IPP, SNMP, and local Get-Printer all in one parallel pipeline. Works even on printers that have SNMP disabled.
Deterministic driver matching
Scrapes the Microsoft Update Catalog, downloads the candidate driver, parses the INF, and confirms a 1284_CID_* hardware-ID match before installing. No guessing.
Network + USB printers
One binary handles both install paths. USB printers hot-swap their driver via Set-Printer without re-creating the queue.
Clean remove
Queue → driver → port cleanup with spooler-lag retry and driver-store package removal. No orphaned ports, no dead drivers cluttering Print Server Properties.
Scriptable CLI, lazy-style TUI
Pipe --json to jq for RMM automation, or drop into a dense two-panel lazy-style TUI when launched from a real terminal.
Readable errors
PowerShell stderr is parsed and HRESULT-decoded before you see it. No more drowning in CategoryInfo and FullyQualifiedErrorId noise.
Watch it work
prinstall add 192.168.1.50 --verbose · real terminal output
Four tiers, one command
prinstall add walks the pipeline in priority order — only escalates when the previous tier comes up empty.
Local driver store
Reuse what's already installed. No network, no side effects. Instant.
Manufacturer download
Pull from the embedded URL manifest when the vendor publishes a stable direct link.
Update Catalog + INF HWID
Search by IPP CID, download a candidate CAB, parse the INF, match the synthesized hardware ID. Deterministic.
IPP Class Driver
The always-works safety net for any printer that speaks IPP Everywhere (Windows 8+).
Install
Single 12 MB binary. Drop it on PATH and go.
Grab the latest Windows release:
iwr https://github.com/limehawk/prinstall/releases/latest/download/prinstall.exe -OutFile prinstall.exe
Scan your subnet for printers:
.\prinstall.exe scan
Add one:
.\prinstall.exe add 192.168.1.47
Or launch the interactive TUI:
.\prinstall.exe