Two Minute Drill: Change Print Monitors/Processors via PowerShell

Hello folks, Pankaj here to show you an interesting way to change the Print Monitors and Processors registry keys with a single PowerShell command.  This command can be a timesaver if you have hundreds of 3rd party Print Processors and Monitors on your Print Server (s).

*NOTE* these commands only work on stand alone Print Servers and will not work on Clustered Servers

After you install PowerShell (comes preinstalled on Vista+) you can run these commands:

Command to change Print Processor of all Printers to “WinPrint”
set-itemproperty -path ‘HKLM:\system\currentcontrolset\control\print\printers\*’ -name ‘Print Processor’ -value WinPrint

Command to change Print Monitor to “Blank”

For x64 Drivers
set-itemproperty -path ‘HKLM:\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\Version-3\*’ -name ‘Monitor’ -value $null

For x86 Drivers
set-itemproperty -path ‘HKLM:\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers\Version-3\*’ -name ‘Monitor’ -value $null

Steps to Perform:

1)    Open the PowerShell Command Window from the start menu

image

2)    Type in the command and hit enter

image

3)    Check the Print hive again and you will see that all the print processor and monitors have been changed

Location of Print Processors
HKLM\System\CurrentControlSet\Control\Print\Printers

Location of Print Monitors(for x86 Drivers)
HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers\Version-3\

Location of Print Monitors(for x64 Drivers)
HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Drivers\Version-3\

BONUS:
To get a total number of installed printers via PowerShell, run this command:

(Get-WmiObject -class “Win32_Printer” -Namespace “root\cimv2”).Count

Until next time, take care!

Additional Resources:

What’s new in Windows PowerShell 2.0
http://blogs.technet.com/b/askperf/archive/2010/01/26/what-s-new-in-windows-powershell-2-0.aspx

-Pankaj Pande