Trabajar con impresoras en Windows
Puede usar PowerShell para administrar impresoras mediante WMI y el objeto COM WScript.Network de WSH. Usaremos una combinación de ambas herramientas para demostrar tareas específicas.
Enumerar 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.
Agregar una impresora de red
Para agregar una nueva impresora de red, use WScript.Network:
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")
Establecer 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')
Quitar 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")