How to Setup a Nul Port on Windows
It can be extremely useful to have a print queue which, rather than printing itself, forwards prints on to one of a number of other printers. Setting this up in PaperCut is a snap; create a new printer, mark it as a “virtual queue” within PaperCut, and choose which “physical” print queues it can release to!
A virtual queue isn’t intended to ever actually print anything, but rather send its jobs on towards other queues which are associated with real, physical printers. Such functionality is instrumental for features like Find Me Printing, where users all print to the one print queue, but then release at the printer closest to them.
However, if for some reason the PaperCut Print Provider suddenly stops working on your print server, any virtual queues cease to be virtual, and they will instantly start behaving like normal printers. If a virtual print queue is associated with an actual printer, this could be very bad news! Any subsequent prints which a user intends to release securely to a printer in one location would instead come straight out at whatever printer the virtual queue is associated with.
So how do we avoid this? Thankfully, it’s a very simple fix. Instead of creating a virtual queue that points at an actual, physical printer, we make one that points… well, nowhere at all. All prints that are unintentionally released to such a queue will vanish without a trace; in other words, no pages will come out, nobody will get their hands on a document they shouldn’t see, and no paper is unnecessarily wasted!
To achieve this within a macOS printing environment, we recommend that your PaperCut virtual print queues be configured to print to file at “/dev/null”. This way, errant prints will be written out to a file stream which is not saved or stored. You can read more about that process on our How to Setup a Null Printer on macOS article.
For Windows, the process is a little different…
nul port (“nul” with a single letter ‘L’) is easily attached to a Windows print queue:
- Bring up the Printer Properties for the print queue in question.
- Select the Ports tab > then click Add Port….
- Choose Local Port > click on New Port… > enter
nulas the port name.
- Click OK > then Close > then Apply, and you’re done!
On newer Windows versions: head into Bluetooth and devices → Printers and scanners → [select your printer] → Printer Properties → Ports → Add Port… → Local Port → New Port… → enter
nul→ OK → Close → Apply
On older Windows versions: head into Devices and Printers → Right-click Printer → Printer Properties → Ports → Add Port… → Local Port → New Port… → enter
nul→ OK → Close → Apply
- The port name needs to have the exact spelling, it has to be called
- If you are receiving jobs using Windows LPD Service, the Windows Nul port option may not work as expected. Switch to PaperCut LPD for a better experience.
- With a Microsoft Security update release (June 2021), when the Print Spooler service is Restarted, jobs submitted prior to the restart and scheduled to print to the nul port after the restart, PaperCut will not schedule these jobs but the Print Spooler may, an Error occurs. All queues configured using the nul port will be placed into an error status by Windows. If there are jobs in a Find ME queue which are not in Paused status, PaperCut is not currently tracking these jobs and the Print Spooler may schedule these jobs to the nul port resulting in the queue status changing to Error.
- When used on a virtual queue, the administrator should take into consideration the Failure Mode Settings. If set to Mode 1 or 2, the virtual queue will delete all print data sent to it during a failure preventing communication between the Application Server and the Print Provider on the virtual queue’s print server.
Keywords: /dev/null , /dev/nul , nul , find me , pull print , virtual , fake printer port , null printer , KB 5014746
Last updated March 22, 2023