0

We have the following scenario:

  1. 30 laptops
  2. 30 HP Laserjet P2015 printers all coupled via USB

The users can sit at a different place, a different printer (though the identical model) every day. They start off with one printer on virtual port USB001. Then when they change their location and plug in a different printer, seemingly not always, Windows might create a new printer HP Laserjet P2015 (Copy 1) and put that on new port USB002.

When this happens, the Copy 1 can print over the USB002 port to the printer, but the other printer that's still configured on USB001 (even though it's the same driver, same type, same everything except another physical printer) gives errors because it's supposedly no longer connected.

An ideal scenario would be: One virtual USB printer port, USB001 that always prints over USB001 whichever printer you connect it to. Is there any way to force the computer from doing this?

My ideas:

  • enable printer pooling and just let every printer print over every port, with only one printer it should only print on that one and ignore the rest; doesn't work
  • somehow make group policy force the printer to use the same virtual port? but I assume this would probably prevent the printer from working alltogether
  • save the registry key for the printer settings as a .reg file and execute that on startup over all the computers? but I'm afraid this might mess things up

1 Answer 1

0

Because Windows 7 creates a new virtual device for every device based on its serialnumber, I decided to try to fake Windows into picking different physical devices as the same one, by changing the serial number the printer passes on to Windows, so for Windows there's no different device being plugged in and it maps it on the same virtual port.

I had a look at PJL (Printer Job Language); found following command

Create a file with following contents; name it serial.txt (or anything)

ESC%-12345X@PJL SET SERVICEMODE=HPBOISEID
@PJL SET SERIALNUMBER=CNCABCDEF
@PJL SET FORMATTERNUMBER=ABCDEF
@PJL SET SERVICEMODE=EXIT
ESC%-12345X

Then I shared the printer so I could write to it over network, and copied my file with print jobs to it

copy /b serial.prn \\workstation\share

Rebooted the printer so it would have the new fake serial number, deleted the old printer in Windows, reinstalled it so only the printer with this serial number remained. When this is done on all the printers, Windows recognizes them all as the same printer and will instantly couple it without creating a copy or new USB port.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .