Uso delle stampanti in Windows

Questo esempio si applica solo alle piattaforme Windows.

È possibile usare PowerShell per gestire le stampanti usando WMI e l'oggetto COM WScript.Network di WSH.

Elenco delle connessioni della stampante

Il modo più semplice per elencare le stampanti installate in un computer consiste nell'usare la classe WMI Win32_Printer:

Get-CimInstance -Class Win32_Printer

È anche possibile elencare le stampanti usando l'oggetto COM WScript.Network usato in genere negli script WSH:

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

Poiché questo comando restituisce una semplice raccolta di stringhe di nomi di porta e nomi di dispositivo della stampante senza etichette distintive, non è facile interpretare.

Aggiunta di una stampante di rete

Per aggiungere una nuova stampante di rete, usare WScript.Network:

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

Impostazione di una stampante predefinita

Per usare WMI per impostare la stampante predefinita, individuare la stampante nella raccolta Win32_Printer e quindi richiamare il metodo SetDefaultPrinter:

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

WScript.Network è un po' più semplice da usare, perché include un metodo SetDefaultPrinter che accetta solo il nome della stampante come argomento:

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

Rimozione di una connessione alla stampante

Per rimuovere una connessione alla stampante, usare il metodo WScript.Network RemovePrinterConnection:

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