Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

On our Server 2008 R2 Print server we have ~30 HP Printers (Some CM3530s, M4345s and CP3525s) and I have been asked to convert all the print double sided and, for the colour printers, greyscale. Is there a powershell script or cmd-line trickery or do I have to go through each printers settings and change it manually?

share|improve this question
I've accecpted @JamesK's answer although if you had a massive amount of printers and the time to look I would suggest looking at the command line utilities in @jscotts answer (and if you do find anything, please post as an answer to this question). – tombull89 Mar 10 '11 at 16:16
up vote 1 down vote accepted

Unfortunately from my experience I think there is no way to mass update multiple printer queue drivers. I would think that you need to go into each print queue and amend the driver settings individually.

share|improve this answer
Thanks @James, I was afraid that was going to be the answer. I'll hang on for a moment and see if anybody else can suggest anything. – tombull89 Feb 23 '11 at 9:50
no problem! I would be interested to see if anyone else a method to mass change drivers. I think the issue is depending on the model the HP drivers can be diverse with options and locations. (unless you use the upd) – JamesK Feb 23 '11 at 10:16

You should have a look at HP's Web JetAdmin software. Its GUI will allow you to do mass configuration changes, create config templates, update firmware, audit your printer inventory and configurations, and much more. Its free -- and it does not require the UPD.

Windows also provides a number of command line utilities, prncnfg.vbs, prndrvr.vbs, prnjobs.vbs, prnmngr.vbs, prnports.vbs, and prnqctl.vbs which can used to script print server changes en masse.

I am hoping an SF-resident PowerShell expert will chime in with their experience also. there are lots of interesting results from Google, but ps is not my native tongue.

share|improve this answer

Actually HP's new v5.6.0 of their "HP Universal PS" and "HP Universal PCL 6" print drivers comes with a utility called: "HP Driver Config Util" which allows you to modify the CFG file within the driver installation folder so that any queue that is changed to that driver gets the settings that you specify. You can lock the settings as well so that the users can't get make unnecessary changes.



share|improve this answer

The first place I would look is in:


This is where you will find individualised configuration information for every queue installed on the machine. Each key will contain at least these three subkeys:




The first and third are what you want to have a look at. Some drivers will cache a lot of model-specific information in here to save time and use less network resources.

However, I think the feature-specific settings that you get to from "Printing Defaults" are controlled at a driver level. Most printers use SNMP to automatically get/set this information, however. You might also find registry entries scattered around the registry that have cached information that's useful here.

Good luck!

share|improve this answer

Here is a copy of a PS script that uses the set printer command to change the Color to BW:

$TargetHost = "printservernamehere"
$list = get-wmiobject -ComputerName $TargetHost -class win32_printer
$i = 1

Foreach ($printer in $list) {
    $name = $
    Write-host("Working on " + $name + " (#" + $i++ + " of " + $list.Count + ")")
    setprinter \\$TargetHost\$name 8 "pdevmode=dmcolor=1"
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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