5

I have to add a printer to a laptop. Other windows 10 units have the printer installed already (for a long time). Hp no longer supports this old printer (laserjet 5) and so it has recently been removed from the default install list or windows update. I would like to harvest the driver from the units that are already working and put it on the other windows 10 64bit that doesn't and can't get it. How can I identify which driver I'm using out of the hundreds present in the repository folder (“C:\Windows\System32\DriverStore\FileRepository”.)? I do not want to have to buy software to do this and the target machine is Windows 10 Home (cannot import using printermanagement).

HP in cahoots with MS dropped this from the default printer install list sometime in the last 6 months (See most recent comments noting this disappearance):

https://h30434.www3.hp.com/t5/Printer-Software-and-Drivers/hp-laserjet-5-printer-driver-for-windows-10/td-p/5557309

https://h30434.www3.hp.com/t5/LaserJet-Printing/HP-Laserjet-5-printer-driver-for-Windows-10-ver-1803-not/td-p/6761697

Update 3 December 2018: So far, the furthest progress I've made has been with CraftyB's answer. Here is the output from his PowershellOutput instructions. It identified the .inf file for my printer as prnhp001.inf. I don't think this is a "default driver" as some have suspected. Also perhaps worth noting is this is purely a network printer on my home network.

Update -- Mission Complete. Using CraftyB's answer, I took the entire folder indicated in the "InfPath" results of his 2nd block of code and browsed there at the "Have Disk" prompt during install and it worked. For those who many not have a working pc to harvest the driver from in order to get their laserjet5 working on Windows 10, I provide them here.

  • The properties of the device, within Device Manager, should indicate the driver being used. However, Windows 10 has the ability, to use a generic printer driver for most legacy printers. So that is most likely the driver being used, so looking at the properties of the device, won't likely provide any insight on how to configure the machine to use the printer. – Ramhound Nov 27 '18 at 3:15
  • 1
    A HP Laserjet 5 will not require additional drivers. Windows 10 will install it automatically. If it isn’t, you’ve got other problems that need to be addressed. – Appleoddity Nov 27 '18 at 4:31
  • @ Appleoddity: Your comment would have been true some months ago, but this has changed recently. See the most recent comments on pages like this: h30434.www3.hp.com/t5/Printer-Software-and-Drivers/… OR h30434.www3.hp.com/t5/LaserJet-Printing/… Or anywhere else this is addressed since about August of this year. – Flotsam N. Jetsam Nov 27 '18 at 15:57
  • @ Ramhound : I tried the properties in DM, but all I could find that looked like a driver was Device SWD\PRINTENUM\{B92ECC91-621D-4277-8817-48C4FC21E450} in info under events tab. I searched for "B92" in my repositories folder and got nothing so I concluded this can't be it. Am I missing something? – Flotsam N. Jetsam Nov 27 '18 at 16:03
  • Flotsam - You said you already confirmed that ftp.hp.com/pub/softlib/UPD/hp-upd-6.1.0.20062/… will not work then, right? I just want to be sure that that is accurate otherwise, give that driver right from HP a shot just in case. And just in case, give this one a shot too: ftp.hp.com/pub/softlib/UPD/hp-upd-6.6.5.23510/…. If you want, look over ftp.hp.com/pub/softlib/UPD and try even older versions from the HP FTP site for the correlated package. Maybe you will find a version that'll work; process of elimination. – Pimp Juice IT Nov 29 '18 at 14:42
8
+500

I would personally suggest trying to use powershell:

Identify the name of the printer by using this cmdlet:

get-printer

This will list the names of the printer and the corresponding driver.

Now to use the printer name to get the driver locations:

$Printer = get-printer <name of printer> | Select *
get-printerdriver $printer.drivername | select *

Replace name of printer and remove the angle brackets, if the name has a space in it please put in double quotes - "name of printer".

This will produce a list that will show you the locations of the drivers and dependant files under the following properties:

Path
DependentFiles
InfPath

To get the full list of dependant files:

Get-PrinterDriver $Printer.DriverName | Select DependentFiles -ExpandProperty DependentFiles

The below is a script that will copy all the files above, you just need to insert the name of printer and it will put the files into "c:\DriverBackup\'name of printer'".

$PrinterName = "Name of printer"

$DriverBackupLocation = "c:\DriverBackup\$PrinterName"

mkdir $DriverBackupLocation

$Printer = Get-Printer $PrinterName | Select *
$PrinterDriver = Get-PrinterDriver $Printer.DriverName | Select *

Copy-Item -path ($PrinterDriver.InfPath | Split-Path -Parent) -Destination $DriverBackupLocation -Recurse
  • I'm not at the location where I need to deploy, but I already ran the above and it pointed to the .inf file in the repository folder, which I believe is the ticket I'm looking for. Thank you already! – Flotsam N. Jetsam Nov 29 '18 at 16:35
  • You're very welcome, let me know how it goes and if I can help any further. – CraftyB Nov 29 '18 at 16:51
  • 1
    Nice answer...... – Pimp Juice IT Nov 29 '18 at 17:17
  • I was not able to use your coded harvest of files on the target pc. It kept saying file not found like it was still missing something. However, I copied the entire folder identified in the "InfPath" results of your 2nd block of code and browsed there at the "Have Disk" prompt during install and it worked. Unless you can edit your script somehow to collect everything, I think just narrowing your answer to copying that InfPath folder is the ticket. – Flotsam N. Jetsam Dec 4 '18 at 2:25
  • 1
    I have modified the script so it copies the parent folder of the inf file into "c:\DriverBackup\'Name of printer'", I was testing with a random printer driver on my PC, of which all the files were listed in the dependent files, this may not always be the case but as you spotted the folder the inf file resides in should have all the components to be able to reinstall. – CraftyB Dec 4 '18 at 14:34
3

According to the hp laserjet 5 printer driver for windows 10 there is a comment that indicates a specific HP Universal Print Driver worked to resolve this problem. . .

  • The driver file is "upd-pcl5-x64-6.1.0.20062.exe", I could not find it on HP's support site, so I did a search, and found several locations listing this universal driver set. I found a site that didn't charge, but did plant a cookie ... which I will now have to elliminate. BUT, IT WORKS!!! I can't guarantee that it will work for you, but I suspect that it will work for several PCL printers "no longer supported".

A few things to mention specifically. . .

  1. That post suggests using the upd-pcl5-x64-6.1.0.20062.exe driver package in particular

  2. The latest version on the HP FTP site seems to be upd-pcl6-x64-6.6.5.23510.exe so you might try that if the suggested driver package doesn't resolve.

  3. If all else fails, go right to the HP FTP website to the /UDP folder and download any of the available package versions from there and go through one by one in case any do work

    • This may be a time consuming and tedious process, but potentially a helpful one that could possibly work to resolve the problem using a trivial process of elimination tactic.

    enter image description here

2

printer server

  1. Click on print server properties

drivers

  1. Then goto drivers.
  2. Click Properties

and there it is, the driver path.

Note: The driver path is scrollable! If left click on the text, and hold the mouse down you can drag to the right and it will scroll over revealing the rest of the path.

enter image description here

  • In my case, the driver path did not contain a .inf file, which I am prompted to navigate to when installing on the target pc. For sanity, I doublechecked that I can print from the pc where I am trying to harvest the driver from. – Flotsam N. Jetsam Dec 4 '18 at 1:56
1

If you persist in struggling to get it to work in Windows (despite the very generous bounty), you could buy a cheap Raspberry pi and install CUPS on it. The Laserjet 5 is listed as perfectly working with Linux (and equally macOS):

HP Laserjet 5 in the OpenPrinting database

You should then be able to add it as an IPP (internet printing protocol) printer and print over the network from your Windows clients. Here are more verbose instructions for printing to a CUPS printer from Windows:

https://zedt.eu/tech/windows/installing-an-ipp-printer-in-windows-10/

0

Try the following way:

  1. Open Run, type control admintools, click Enter.

  2. Control Panel\System and Security\Administrative Tools->Printer Management->Printer server->local printer->Action->select Export printer to a file

enter image description here

  1. In laptop, copy this printer driver, when adding a printer we select the printer driver.
  • It looks like this will work, I was able to export but I'm not at the location of the problem pc right now. What it produces does not appear to be a driver however. It is a xxxx.printerExport file that I guess must be imported using what you directed above. If that importing is as easy as exporting, this will work. The best solution would be to somehow isolate only the printer driver I want. This gets every printer existing on the export pc. Looks like it will work though. Thanks. – Flotsam N. Jetsam Nov 27 '18 at 15:46
  • 1
    It didn't work, because the target pc is home edition and doesn't have the printmanagement snap in. Also doesn't have printbrm. Is there any other way to import? – Flotsam N. Jetsam Nov 28 '18 at 2:30
  • Try to use Driver Genius Pro tool to back up the printer driver, then install it in laptop. – Daisy Zhou Nov 28 '18 at 14:17
0

You can use DISM to export all currently-installed drivers:

dism /online /export-driver /destination:C:\drivers
  • 1
    That produced a folder full of indistinguishable files much like the repository folder I had mentioned finding in my OP. How can I identify just the printer driver I'm actually using? – Flotsam N. Jetsam Nov 27 '18 at 15:48
0

A very simple answer, and not a long and complicated one, but...

You can try Double Driver. If your device is not using the default print driver, then it'll show up on the list, and you can then export and restore it using the tool.

  • I tried this. I can see where it could be very useful. However, the result didn't identify the driver. Here is the PowershellOutput from CraftyB's answer listing my target driver. Notice the dir at the end showing the output from CraftyB's coded harvest solution showing the files needed just for my printer. You claimed that if the output of DoubleDriver didn't obviously name my printer then that meant I must be using the default driver. Can you positively identify any of those as the default driver? – Flotsam N. Jetsam Dec 3 '18 at 14:20
  • @FlotsamN.Jetsam I can't, but give this a shot: copy those files to a folder on your new PC, connect the printer, In device manager, manually scan for drivers by right-clicking in the device and navigate to that folder. This might just work. – rahuldottech Dec 3 '18 at 16:26
0

Forensics : Locating the driver .inf file and installation files via registry

You may find the name of the .inf file in the registry under the key
HKEY_LOCAL_MACHINE\DRIVERS\DriverDatabase\DeviceIds\{PRINTR-NAME}.
You will find there entries whose name is that of the file-name. For my printer the name was oem15.inf.

The .inf file is then found at C:\Windows\INF\oem15.inf and can be copied from there.

Going then to the key HKEY_LOCAL_MACHINE\DRIVERS\DriverDatabase\DriverInfFiles\oem15.inf, you can extract the value of (Default), which for me was mx920p6.inf_amd64_8ba71b07bf815680.

The driver's files can be found in the folder
C:\Windows\System32\DriverStore\FileRepository\mx920p6.inf_amd64_8ba71b07bf815680.

These files, together with the .inf file, should be enough to install the driver.

Automatically extracting the .inf and driver files

A utility that worked for me for exporting the driver of my printer:

  • Download the old but still working and open-source DriverBackup!
  • Unpack into a folder
  • Execute DrvBK.exe and wait for it to populate the list
  • Unselect everything, which I did by right-click on any entry and selecting Cancel selection
  • Open the Printers section
  • Tick the printer.
    On the lower pane you will see displayed the name of the .inf file of the printer, that you can find in C:\Windows\INF.
  • Click Start Backup
  • Enter suitable data in the dialog of "Backup selected devices" including the path to where to store
  • Click Start Backup!

When it finished I had a .inf file and lots of DLLs and other files, which I assume were my driver's files. (But I didn't try to install them, just in case.)

  • I do not have a "printers section" when I run this. Could it be because this is a network--not local--printer? I did update my OP with info about the actual driver found by using CraftyB's answer. – Flotsam N. Jetsam Dec 3 '18 at 14:58
  • According to the information you posted, the .inf file should be at C:\Windows\INF\prnhp001.inf and the driver installation files at C:\WINDOWS\System32\DriverStore\FileRepository\prnhp001.inf_amd64_081cf2b90ec9e6d5\prnhp001.i. If you stored them all in one folder, you should be able to install the driver on another computer. – harrymc Dec 3 '18 at 15:04
  • Right, I'm only responding to your post in order to try to see if I can get to the solution using your method. I'd like to prove out as many answers as possible, pick the best one and then hopefully have the others as back up if the best becomes obsolete in the future. The inf was found using another answer. – Flotsam N. Jetsam Dec 3 '18 at 15:11
  • That information as retrieved from the registry is the main part of my answer. DriverBackup! was a convenience toll, and I was still doubtful about it because of its age. – harrymc Dec 3 '18 at 15:15
  • OK, I missed that. Interesting. The registry has hundreds of HP laserjet drivers that seem similar yet have different instances of where the underscore is, but have laserjet 5 in the name. All seem to name "oem14.inf", which is different from the inf obtained by powershell. I wonder what that means... – Flotsam N. Jetsam Dec 3 '18 at 15:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.