Arbeta med skrivare i Windows

Du kan använda PowerShell för att hantera skrivare med hjälp av WMI och WScript.Network COM-objektet från WSH. Vi använder en blandning av båda verktygen för att demonstrera specifika uppgifter.

Lista skrivaranslutningar

Det enklaste sättet att lista de skrivare som är installerade på en dator är att använda WMI-Win32_Printer klassen:

Get-CimInstance -Class Win32_Printer

Du kan också lista skrivarna med hjälp av WScript.Network COM-objektet som vanligtvis används i WSH-skript:

(New-Object -ComObject WScript.Network).EnumPrinterConnections()

Eftersom det här kommandot returnerar en enkel strängsamling med portnamn och skrivarenhetsnamn utan några särskiljande etiketter, är det inte lätt att tolka.

Lägga till en nätverksskrivare

Om du vill lägga till en ny nätverksskrivare använder du WScript.Network:

(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")

Ange en standardskrivare

Om du vill använda WMI för att ange standardskrivaren, hittar du skrivaren i Win32_Printer-samlingen och anropar sedan metoden SetDefaultPrinter:

$printer = Get-CimInstance -Class Win32_Printer -Filter "Name='HP LaserJet 5Si'"
Invoke-CimMethod -InputObject $printer -MethodName SetDefaultPrinter

WScript.Network är lite enklare att använda eftersom det har en SetDefaultPrinter-metod som endast använder skrivarnamnet som argument:

(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP LaserJet 5Si')

Ta bort en skrivaranslutning

Om du vill ta bort en skrivaranslutning använder du metoden WScript.Network RemovePrinterConnection:

(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\Printserver01\Xerox5")