Trabajar con impresoras en Windows
Este ejemplo solo se aplica a las plataformas Windows.
Puede usar PowerShell para administrar impresoras mediante WMI y el objeto COM WScript.Network de WSH.
Enumeración de las conexiones de impresora
La manera más sencilla de enumerar las impresoras instaladas en un equipo es usar la clase WMI Win32_Printer:
Get-CimInstance -Class Win32_Printer
También puede enumerar las impresoras mediante el objeto COM WScript.Network que suele usarse en los scripts de WSH:
(New-Object -ComObject WScript.Network).EnumPrinterConnections()
Dado que este comando devuelve una colección de cadenas simple de nombres de puerto y nombres de dispositivo de impresión sin ninguna etiqueta distintiva, no es fácil de interpretar.
Adición de una impresora de red
Para agregar una nueva impresora de red, use WScript.Network:
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")
Establecimiento de una impresora predeterminada
Para usar WMI para establecer la impresora predeterminada, busque la impresora en la colección Win32_Printer y luego invoque el método SetDefaultPrinter:
$printer = Get-CimInstance -Class Win32_Printer -Filter "Name='HP LaserJet 5Si'"
Invoke-CimMethod -InputObject $printer -MethodName SetDefaultPrinter
WScript.Network es un poco más fácil de usar, porque tiene un método SetDefaultPrinter que toma el nombre de la impresora como argumento:
(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP LaserJet 5Si')
Eliminación de una conexión de impresora
Para quitar una conexión de impresora, use el método WScript.Network RemovePrinterConnection:
(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\Printserver01\Xerox5")