Trabalhar com impressoras no Windows
Este exemplo só se aplica a plataformas Windows.
Você pode usar o PowerShell para gerenciar impressoras usando WMI e o objeto WScript.Network COM do WSH.
Listando conexões de impressora
A maneira mais simples de listar as impressoras instaladas em um computador é usar a classe WMI Win32_Printer :
Get-CimInstance -Class Win32_Printer
Você também pode listar as impressoras usando o objeto WScript.Network COM que normalmente é usado em scripts WSH:
(New-Object -ComObject WScript.Network).EnumPrinterConnections()
Como esse comando retorna uma coleção de cadeia de caracteres simples de nomes de portas e nomes de dispositivos de impressora sem rótulos distintivos, não é fácil interpretá-lo.
Adicionar uma impressora de rede
Para adicionar uma nova impressora de rede, use WScript.Network:
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")
Definir uma impressora predefinida
Para usar o WMI para definir a impressora padrão, localize a impressora na coleção Win32_Printer e invoque o método SetDefaultPrinter :
$printer = Get-CimInstance -Class Win32_Printer -Filter "Name='HP LaserJet 5Si'"
Invoke-CimMethod -InputObject $printer -MethodName SetDefaultPrinter
WScript.Network é um pouco mais simples de usar, porque tem um método SetDefaultPrinter que usa apenas o nome da impressora como um argumento:
(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP LaserJet 5Si')
Removendo uma conexão de impressora
Para remover uma conexão de impressora, use o método WScript.Network RemovePrinterConnection :
(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\Printserver01\Xerox5")