What I want to show in this article is a challenge when working with the Get-PrinterDriver cmdlet, related to version info.
Let us have a look at the default output:
With an IT Professional
s mindset, the MajorVersion property shown in the default output would probably be the printer drivers driver version, right?
Let us have a look at the same printer drivers using the Print Management MMC Console:
If we compare the two outputs, an educated guess would tell us that the MajorVersion property in the output of Get-PrinterDriver is actually the driver type (for example “Type 3 – User Mode”).
So how can we get the “Driver Version” property in the Print Management MMC Console in PowerShell? Let us use Get-Member to explore what properties is available on an object produced by Get-PrinterDriver:
It seems like the property “DriverVersion” is what we want, let us try:
This does not look very promising. The data we want is there, but not in a human readable format. The data is in an uint64 format, and would need to be converted in order to see the same values as we get in the Print Management MMC Console.
We can find an explanation on how the data is represented in this article on MSDN:
By using Select-Object we can convert the DriverProperty value into the same format as the Print Management MMC Console:
Thanks to PowerShell MVP Keith Hill for assisting with the conversion process.
I have also filed a suggestion on Microsoft Connect suggesting that more user friendly driver version information should be available by default on the objects created by the Get-PrinterDriver cmdlet.
If you find the need to provide feedback to Microsoft, whether it is bug reports or feature suggestions, you can find more information on how to do this in a previous article I have written.