Reference
Command-line reference
Every spoolsmith.exe command, grouped the way spoolsmith help groups them. Run spoolsmith help <command> or spoolsmith <command> --help for one command's syntax.
Options that work everywhere#
- --dry-run
- Show the plan and change nothing. It overrides
--yesand never prompts.--what-ifis an alias oninstallanduninstall. - --yes
- Accept the plan this PC computes without prompting. On
apply, prefer--plan-hash, which accepts only a plan you've reviewed. - --non-interactive
- Never prompt. Anything that would need an answer fails instead.
- --json
- Write the machine-readable result to stdout. With
--dry-run, it includes the complete plan. - --offline
- Skip the live printer identity check from the start. The plan says so before you confirm.
Redirected stdout is always JSON. Prompts and human-readable summaries go to stderr.
Look at this PC#
spoolsmith printers [--copyable] [--json]#
Lists installed queues and marks the ones that can't be copied, with the reason. Read-only.
- --copyable
- Show only queues that can be copied.
spoolsmith drivers#
Lists the exact registered Windows driver names, for --driver.
spoolsmith status --profile <file> [--json]#
Compares the local queue, driver and port with a printer file, without contacting the printer. Exit codes: 0 matches, 3 mismatch, 2 invalid input, 1 inventory failure.
spoolsmith capabilities#
Prints this build's capability markers. Intune packaging requires SpoolSmith:intune-endpoint-v2:ssb,offline,status.
Copy a printer between PCs#
Walkthrough: Copy a printer.
spoolsmith copy [<queue>] [--out <file.ssb>] [--settings-only] [--note <text>]#
Writes one printer to a .ssb, with its driver whenever it can be exported. Leave out the queue name to choose from a list, and leave out --out to name the file after the queue. clone is an alias.
- --settings-only
- Always leave the driver out.
- --note <text>
- Store a free-text note in the file.
spoolsmith copy --all [--out <printers.zip>] [--settings-only] [--note <text>]#
Writes every copyable queue into one printer set, by default SpoolSmith-printers-<date>-<time>.zip. Uncopyable queues are skipped with a reason. Exits zero if at least one printer was saved, so check failed and skipped in the JSON.
spoolsmith apply <file.ssb|set.zip> [options]#
Sets up a printer from a file, after checking its identity and showing the plan. Each printer in a set gets its own plan and confirmation.
- --member <name>
- Apply one printer from a set, by file name.
- --update
- Change an existing queue to match the file.
- --usb-queue <name>
- For a
.usb.ssb, map onto this Windows USB queue. - --offline
- Skip the live identity check. An unreachable printer falls back to offline automatically anyway.
- --plan-hash <fp>
- Accept only the plan with this fingerprint (printed by
--dry-run), and refuse any other. With a set, pair it with--member. - --dry-run, --yes, --non-interactive, --json
- As above.
spoolsmith bundle inspect <file.ssb|set.zip>#
Reads a printer file or set and checks every payload hash. Doesn't touch the network or Windows.
Find and save a printer#
Walkthrough: Set up by address, and saved setups.
spoolsmith discover <IPv4-CIDR>#
Scans /24 through /32 for printer candidates.
spoolsmith inspect <target>#
Shows what an IP address, fixture file or .ssb reports, and where each piece of evidence came from.
spoolsmith profile capture <target> <file> --name <queue> --driver <name>#
Probes the printer and writes a printer file with the queue name and exact registered driver you give it. Use --windows-driver instead of --driver for Windows automatic IPP setup. Never overwrites a file.
spoolsmith profile edit <file> [options]#
Changes saved settings, keeping a backup under .backups\.
- --name, --driver, --target
- Change the queue name, driver or IP address.
- --package <id> --archive <file>
- Attach a supported local driver package recipe.
- --clear-package
- Go back to an already-installed driver.
spoolsmith profile export-all <folder> <set.zip> [--dry-run]#
Writes every .ssb in a folder into one printer set, byte for byte.
spoolsmith profile import-all <set.zip> <folder> [--dry-run]#
Validates the set, then writes each printer file. Refuses existing filenames. Doesn't change Windows.
Map, change and remove queues#
These change Windows and need an administrator prompt.
spoolsmith add <ip> --windows-driver --name <queue> [--dry-run] [--yes] [--json]#
Windows automatic setup for a verified IPP printer: Windows creates the queue with its class driver, then SpoolSmith asks Windows for the printer's own driver. If none is found, the class driver stays and setup still succeeds.
spoolsmith add --profile <file> [--usb-queue <name>] [--offline] [--dry-run] [--yes] [--json]#
Creates the queue from a printer file. Matching settings are reused; conflicting ones stop the operation. install --profile is an alias.
spoolsmith configure --profile <file> [--usb-queue <name>] [--offline] [--dry-run] [--yes] [--json]#
Updates an existing queue to match its file.
spoolsmith remove --profile <file> [--dry-run] [--json]#
Removes the queue after checking its address and driver against the file. Shared ports and drivers are kept.
spoolsmith repoint <queue> <new-ip> [--dry-run] [--yes] [--non-interactive] [--json]#
Moves an existing queue to a new address, keeping its name and driver. The old port stays.
spoolsmith uninstall <printer-name> [--purge-driver] [options]#
Removes a queue by name. Ports and drivers still used by other queues are kept.
- --purge-driver
- Also remove the driver if nothing else uses it. See known issues.
Package for Intune#
Walkthrough: Intune packaging. Local only; never contacts a tenant.
spoolsmith intune wizard#
Interactive settings, review and export. Needs a terminal.
spoolsmith intune build --profile <file.ssb> --binary <exe> [options]#
Non-interactive export of one printer file. Metadata is derived from the file when you leave it out.
- --dry-run
- Preview the manifest and destination. Writes nothing.
- --revision <n>
- Deployment revision, 1 by default. Raise it for every change.
- --id, --name, --description, --location
- Deployment ID and app metadata. Keep the ID stable across revisions.
- --binary-sha256 <hash>
- Pin the approved CLI hash. A mismatch is refused.
- --output <dir>
- A new export folder. Existing folders are refused.
- --driver-prerequisite
- Accept that the driver is deployed separately.
- --offline
- Skip live identity validation at install time.
- --adopt
- Allow taking over an exactly matching, unmanaged existing queue.
- --content-prep-tool, --content-prep-output
- Where Microsoft's
IntuneWinAppUtil.exeis and where its output goes. By default it's used automatically when it sits besidespoolsmith.exe. - --no-content-prep
- Don't create the
.intunewin, even if the tool is present.
Pending deprecation#
These still work but will be removed in a future build; copy and apply replace them. Using them prints a notice.
spoolsmith catalog families · catalog probe <ip>#
List the built-in printer families, or print the raw evidence a device returns.
spoolsmith install <ip> [--force-family <id>] [options]#
Identify the printer from the built-in catalog (HP LaserJet Pro M4xx, Brother HL-L2xxx) and install it.
Exit codes#
| Code | Meaning |
|---|---|
0 | Success, including "already configured" and "already absent". |
1 | General failure: Windows inventory, a conflict, verification or execution. |
2 | Invalid arguments or input files. |
3 | The printer reported a different identity from the file. For status, local configuration doesn't match. |
4 | Preflight failed: not elevated, or a driver prerequisite is missing. |
5 | Not confirmed: you declined, or no confirmation was possible. |
Something wrong or unclear? Open an issue or edit this page.