Description
Set a new windows default printer via Powershell.
Solution
To find the new printer the Get-WmiObject commandlet with the -Class Win32_Printer parameter can be used. The printer can then be set as the default printer by calling the function SetDefaultPrinter():
$devicename = 'newDefaultPrinterName'
$oldDefaultPrinter = Get-WmiObject -Class Win32_Printer -Filter "Default=True"
$newDefaultPrinter = Get-WmiObject -Class Win32_Printer -Filter "DeviceID='$devicename'"
$newDefaultPrinter.SetDefaultPrinter()
#Perform actions with the new default printer
#...
$oldDefaultPrinter.SetDefaultPrinter()
- Define the name of the printer that should be set as the default printer. In this example it is 'newDefaultPrinterName'
- Save the current default printer
- Get the printer that should be the new default printer by its name
- Set the new printer as the default printer
- Perform actions with the printer
- The previous default printer can be restored
List all available printers:
To list all available printers and their names the Get-WmiObject commandlet can be used:
Get-WmiObject -Class Win32_Printer