Herramientas para la gestión de impresoras en Windows
Windows dispone de una serie de herramientas ya integradas en el sistema que nos permite realizar la gestión de impresoras. Estas herramientas, que se ejecutan desde línea de comandos, ofrecen una amplia flexibilidad a la hora de realizar la instalación y configuración de impresoras. Entre otras ventajas, permiten realizar labores desatendidas sin necesidad de intervención del usuario o ser empleadas en diversos scripts.
Las herramientas disponibles son:
- PowerShell
- Scripts .vbs
- rundll32
- wmic
- PnPUtil.exe
- PrintBrm.exe
PowerShell
PowerShell ofrece diversos cmdlets para administrar impresoras, controladores, puertos de impresión y colas. Estos cmdlets están incluidos en el móduloo PrintManagement y podemos consultar la lista disponible mediante la ejecución del comando
Get-Command –Module PrintManagementEjemplos:
Get-Printer | Format-List NameAdd-PrinterDriver -Name "HP Universal Printing PCL 6" -InfPath "C:archivo_del_driver.inf"Add-PrinterPort -Name "PORT_192.168.1.10" -PrinterHostAddress "192.168.1.10"Por otro lado, se puede hacer uso del cmdlet Get-WmiObject con la clase win32_printer para obtener información relacionada con las impresoras:
Get-WmiObject -class win32_printer -ComputerName Nombre_Maquina | Select Caption,Location,PortName,DriverName,PrinterStatus | Out-GridViewScripts .vbs
En la carpeta %WINDIR%\System32\Printing_Admin_Scripts\<language> (para España <language> es igual a es-ES) se encuentran una serie de scripts cada uno centrado en un aspecto de configuración:
Prncnfg.vbs- Configura y muestra información de configuración de una impresoraPrndrvr.vbs- Agrega, elimina y enumera controladores de impresora.Prnjobs.vbs- Pausa, reanuda, cancela y enumera los trabajos de impresión.Prnmngr.vbs- Agrega, elimina y enumera impresoras o conexiones de impresora, además de establecer y mostrar la impresora predeterminada.Prnport.vbs- Crea, elimina y enumera los puertos de impresora TCP/IP estándar, además de mostrar y cambiar la configuración del puerto.Prnqctl.vbs- Imprime una página de prueba, pausa o reanuda una impresora y borra una cola de impresora.Pubprn.vbs- Publica una impresora en Active Directory Domain Services.
Ejemplos:
- listar las impresoras existentes:
cscript C:\Windows\System32\Printing_Admin_Scripts\es-ES\prnmngr.vbs -l- consultar la impresora determinada:
cscript C:\Windows\System32\Printing_Admin_Scripts\es-ES\prnmngr.vbs -g- crear un puerto de conexión a una impresora de red:
cscript C:\Windows\System32\Printing_Admin_Scripts\es-ES\prnport.vbs -a -r PORT_10.132.133.235 -h 10.132.133.235 -o rawrundll32
Mediante este ejecutable podemos invocar el código de la librería printui.dll, la cual contiene las funciones que usan las herramientas GUI de Windows para la configuración de impresoras. Podemos ejecutar el comando de cuatro formas diferentes, si bien tienen todas ellas la misma estructura básica:
rundll32 printui.dll,PrintUIEntry [baseparameter] [modificationparameter1] [modificationparameter2] [ModificationParameterN]rundll32 printui,PrintUIEntry [baseparameter] [modificationparameter1] [modificationparameter2] [modificationparameterN]rundll32 printui.dll PrintUIEntry [baseparameter] [modificationparameter1] [modificationparameter2] [modificationparameterN]rundll32 printui PrintUIEntry [baseparameter] [modificationparameter1] [modificationparameter2] [modificationparameterN]Los parámetros base especifican la función que el comando va a realizar, pudiendo indicarse un solo parámetro de este tipo en cada orden. Luego, cada parámetro base puede modificarse por uno o varios parámetros modificadores. Hay que tener en cuenta que no todos los parámetros modificadores pueden aplicarse a todos los parámetros base.
Ejemplo:
rundll32 printui.dll,PrintUIEntry /ga /if /b "Printer 1" /f "C:\temp\sharp\Spanish\PCL6\64bit\ss0emesp.inf" /r "PORT_IP_10.132.133.235" /m "SHARP MX-M264N PCL6" /z /ywmic
Aunque la herramienta de la línea de comandos de WMI está en desuso en favor de la utilización de PowerShell aún se puede hacer uso de ella. Por ejemplo, podemos listar las impresoras instaladas:
wmic printer list brief
wmic printer get name,defaultPnPUtil.exe
PnPUtil.exe, que se encuentra en el directorio %windir%\system32, es una herramienta de línea de comandos que permite realizar acciones con drivers de impresoras, como puede ser agregar o eliminar un paquete de drivers del almacén de controladores. Los drivers se guardan por defecto en %systemroot%\System32\DriverStore\FileRepository.
PrintBrm.exe
PrintBRM permite realizar copias de seguridad, restaurar y migrar colas de impresión, configuraciones de impresoras, puertos de impresora y monitores de idiomas. Esta herramienta está muy enfocada a la exportación e importación de configuraciones entre servidores de impresión.
El ejecutable se encuentra en la carpeta C:\Windows\System32\spool\tools
En el siguiente enlace se puede consultar una lista de los mismos: PowerShell PrintManagement