Windows – How to vew the drivers installed to a printer as a limited user

network-printerpermissionsprint-serverwindows

…alternately, what permissions do I need to give someone so they can view (but not alter) the Additional Drivers on a network printer shared out from a Windows print Server? (Server 2008 R2, Server 2012, Server 2012 R2)

The problem is that we need to inventory all the printers we have on our print servers, and in particular, verify that that they have 32 and 64 bit drivers installed. Of course, to make life difficult, we don't want to allow the people doing the inventory to have permissions to manage the printers or install drivers.

So, what these inventory guys see is the Additional Drivers button greyed out:

enter image description here

And they need to see the Additional Drivers dialogue, only, without the ability to edit it.

enter image description here

We can, of course, view all the drivers installed on the print server through the Print Management snap-in, but that doesn't seem to have a way to match up the installed drivers to the printer(s) they're associated with. (Someone must have decided that feature would be too useful.)

I'm also open to a command line approach, but I couldn't find one that would list the additional driver associated with a given printer. Get-WMIObject -Class Win32_Printer -Computer [printserver name] Seemed promising at first, until I read the available properties/attributes for the class, which seem to include the driver name as the only available driver-related attribute.

The PowerShell cmdlets for Print Management also don't seem to do what I need, and are only available for Server 2012 R2 and Windows 8.1 anyway (sigh).

At the same time, I've seen it done where users had the ability to view the additional drivers on a printer without changing them, so I'm pretty sure it's possible… though, viewing the security tab and permissions options for a printer doesn't seem to shed any light on the matter.

enter image description here

Leaving me with the question of how to display that information as a limited user, or what permissions I need to assign in order to allow a user to view (but not alter) the printer's installed drivers.

Best Answer

The "Additional Drivers" list is built by querying the subkeys of HKLM\System\CurrentControlSet\Control\Print\Environments and pulling together matching names. There aren't "Additional Drivers" installed on a per-printer basis.

Posit that you have two printers, "Accounting Printer" and "Janitorial Printer" using the driver "Whiz Bang Jet PCL 8" for the x64 architecture. After you use the "Additional Driver" button to install an Itanium driver for the "Janitorial Printer" you'll find that the "Accounting Printer" also shows an Itanium architecture driver installed.

I'd inventory the printers and drivers on machines by just remotely dumping the printer-related registry to a central location and parsing it.