My Blog

HP LaserJet 1000 and Windows 10

Author: Dmitry Klionsky | Created: 2020-02-16

One day my aunt asked me if I could make her old HP LaserJet 1000 printer work with Windows 10 Home Edition. I came to her, plugged the printer into her laptop and saw the famous USB device not recognized error. I googled the problem to only find that support for the driver ended with Windows XP and there’s no drivers for this printer model since Vista. All solutions I’ve seen used either Windows 7 32bit with XP compatibility mode (not my case) or a Virtual machine (VM) with Windows XP shared printer (my guess is it still won’t work due to driver is unavailable, see below). The problem is the laptop runs on a Celeron processor and has 4GB of memory and Windows 10 is already too slow, so a VM is not an option.

So the task is: a simple setup for a non-technical person who only needs to switch on the printer, print some pages and switch it off.

The solution is pretty obvious: a print server. One option is to buy one, assuming you can find the one you need and make it work. I prefer to keep as much as possible under my control and, since I’ve already had success with turning my HP LaserJet P1005 into a network printer, I went with the second option and decided to make a custom print server.

I took the printer home and made it work with Linux without any problems.

NB: Windows 10 has a Windows Subsystem for Linux and installing the below steps might work there. Still, it uses some kind of a VM machine to run Linux so it isn’t an option either.

I settled down to the next setup:

NB: Some people may argue that spending $70 on the above setup is not feasible to make a $20 printer work. But I think the device that works for more than 20 years has earned a second life chance.

Let’s go to work…

Perform the Generic Print Server Setup from here.

Setup HP LaserJet 1000

That’s it! The print server is now accessible via IPP and Samba.

Testing on Windows 10

It’s time to test the print server on some Windows 10 machine.

I used a free Windows 10 Enterprise image from here.

Ensure the print server is reachable:

   > ping printerpi

   Pinging printerpi [192.168.100.32] with 32 bytes of data:
   Reply from 192.168.100.32: bytes=32 time<1ms TTL=127
   ...

Connect to the printer via IPP

Ensure Internet Printing Client feature is enabled.

Run Turn Windows features on or off (optionalfeatures.exe). The Internet Printing Client option should be enabled.

Windows 10 Features Enable IPP Client Image

Adjust as you need. Click OK. You may need to restart.

If you prefer command line then launch PowerShell as Administrator and run:

> Enable-WindowsOptionalFeature -FeatureName Printing-Foundation-Features -Online -NoRestart
> Enable-WindowsOptionalFeature -FeatureName Printing-Foundation-InternetPrinting-Client -Online -NoRestart
> Enable-WindowsOptionalFeature -FeatureName FaxServicesClientPackage -Online -NoRestart
> Disable-WindowsOptionalFeature -FeatureName Printing-Foundation-LPDPrintService -Online -NoRestart
> Disable-WindowsOptionalFeature -FeatureName Printing-Foundation-LPRPortMonitor -Online -NoRestart

Adjust the above you need. You may need to restart.

Let’s connect to the printer via IPP.

Go to Windows -> Settings -> Devices -> Printers & scanners -> Add a printer or scanner.

If the printer is found you are done. Click on it, print the test page and you can stop reading.

NB: I don’t know how to make automatic printer discovery work. It works on some machines and doesn’t on others. I’ve spent huge amount of time playing with services, firewall, googled about it and no luck. If you know how to make it work reliably, please share.

If the printer is not found click The printer that I want isn’t listed. Choose Select a shared printer by name and past the printer link into the field.

Windows 10 Add Printer IPP Image

Click Next.

What?! Windows wants the driver, which we don’t have. We wouldn’t be doing all of that otherwise. Fortunately, there’s a solution. Thanks to this article (in Russian) for the hint. CUPS takes printing jobs in PostScript and converts it into a format suitable for the printer. Windows includes two such drivers: MS Publisher Color Printer (color) and MS Publisher Imagesetter (black and write). You won’t have full control over the printer and printing will be slower, but this is a working solution.

Windows 10 Add Printer Driver Image

Choose MS Publisher Imagesetter and click OK.

Windows 10 IPP Printer Added Image

Click Next. Click Print a test page.

At this point you should be able to print the test page and you can stop reading.

Connect to the printer via Samba

NB: Support for SMBv1 is long deprecated in Windows. It’s not secure, but I think using the client only at home is acceptable. Plus it might be the only option for an old network printer or a NAS server. See this link for more detail.

Ensure SMB 1.0/CIFS Client is enabled

Run Turn Windows features on or off (optionalfeatures.exe). The SMB 1.0/CIFS Client option should be enabled.

Windows 10 Features Enable SMB1 Client Image

Adjust as you need. Click OK. You may need to restart.

If you prefer command line then launch PowerShell as Administrator and run:

> Enable-WindowsOptionalFeature -FeatureName SMB1Protocol -Online -NoRestart
> Enable-WindowsOptionalFeature -FeatureName SMB1Protocol-Client -Online -NoRestart
> Disable-WindowsOptionalFeature -FeatureName SMB1Protocol-Server -Online -NoRestart
> Disable-WindowsOptionalFeature -FeatureName SMB1Protocol-Deprecation -Online -NoRestart

Adjust the above you need.

Enable Samba Insecure Guest Logons

On Windows 10 Enterprise and Professional you can run Local Group Policy Editor (gpedit.msc)

Windows 10 GPEdit Enable Insecure Logons Image

On Windows 10 Home you need to change the Windows Registry.

Launch PowerShell as Administrator and run:

> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" AllowInsecureGuestAuth -Type DWORD -Value 1 -Force

Now restart Windows.

Let’s connect to the printer via Samba:

Run File Explorer -> Network. Press F5 to refresh.

Windows 10 Network Printers Image

Double-click on PRINTERPI. Double-click on HP_LasetJet_1000.

Windows 10 Open Samba Printer Image

Windows again wants the driver, which we don’t have. But see the explanation above… Click OK.

Windows 10 Add Printer Driver Image

Choose MS Publisher Imagesetter and click OK.

Now you’ve connected to the printer via Samba too.

Windows 10 Installed Printers Image

Choose HP_LaserJet_1000 on PRINTERPI -> Manage -> Print a test page.

Congratulations! The old HP LaserJet 1000 now works with Windows 10 via IPP and Samba.