Cerrar
InicioAzureMicrosoft Intune: Instalación de impresoras mediante el Portal de Empresa

Microsoft Intune: Instalación de impresoras mediante el Portal de Empresa

Cuando vamos migrando todos nuestros equipos de On-Premises (AzureAD Hibrido) al Cloud (AzureAD), algo que nos suele quedar algo descolgado es la instalación de las impresoras. Los clientes suelen tener servidores de impresión, los cuales también queremos derogar para no tener que mantener servicios On-Premises. Al final con un servidor de impresión local, creamos una GPO que la distribuya a los usuarios y listo, puesto esto “mismo” lo podemos hacer mediante Intune sin servidores de impresión locales ni tampoco en nube (aquí un artículo sobre el servicio de impresión Cloud en AzureAD que había publicado en su momento: Servicio de Impresión en la Nube con Universal Print). Servicio que está muy bien, pero con algunas limitaciones que en ocasiones no nos podemos permitir tenerlas y es por ello que tenemos/debemos realizar instalación de impresoras de red en los equipos.

En este artículo voy a mostraros como de sencillo es implementar impresoras de red para vuestros usuarios, usuarios que tienen sus equipos unidos a AzureAD exclusivamente y que los tenemos en cualquier parte del mundo conectados. Ahora diréis, ¿si los tenemos fuera de nuestra red para que queremos tener instaladas impresoras de nuestras oficinas? A esto tengo dos respuestas:

  1. El usuario cuando vaya a la oficina las tiene disponibles ya previamente (como ya no tenemos servidores de impresión On-Premises esto podemos hacerlo mediante Intune)
  2. El usuario si está conectado por VPN y está correctamente configurada pues podrá imprimir desde cualquier parte del mundo (ya recoger las impresiones es otra cosa :-)).

Cada uno que le busque la utilidad que quiera, pero al final, si vamos a necesitar instalar impresoras a los usuarios por el motivo que sea, aquí os muestro como hacerlo de forma sencilla, pero antes ahí va la infografía de este artículo:

Para realizar la instalación de nuestras impresoras vamos a necesitar tres cosillas:

  • Drivers: vamos a necesitar los drivers de la impresora (.inf, .cab, .cat) los cuales empaquetaremos en nuestro .intunewim
  • Pnputil: Pnputil.exe es una utilidad de línea de comandos que puede usar para administrar el almacén de controladores. Puede usar este comando para agregar paquetes de controladores, quitar paquetes de controladores y enumerar los paquetes de controladores que están en el almacén (+ info https://learn.microsoft.com/es-es/windows-server/administration/windows-commands/pnputil)
  • Script de PowerShell: con un sencillo script instalaremos el driver y configuraremos la impresora para nuestros usuarios.

Dicho esto, vamos a empezar por lo primero, debemos descargarnos los drivers de la impresora que queremos instalar y guardarlos en una carpeta la cual nos llevaremos en el paquete .intunewim que vamos a crear junto con los scripts de instalación. Entre los ficheros que debemos tener en nuestra carpeta Drivers para cada impresora, debemos tener mínimo los siguientes ficheros por extensión:

  • .inf: Un archivo de información de instalación (INF) es un archivo de texto en un paquete de controladores que contiene toda la información que los componentes de instalación del dispositivo usan para instalar un paquete de controladores en un dispositivo (+ info Introducción a los archivos INF)
  • .cat: Un archivo de catálogo firmado digitalmente (.cat) se puede usar como firma digital para una colección arbitraria de archivos. Un archivo de catálogo contiene una colección de hashes criptográficos o huellas digitales. Cada huella digital corresponde a un archivo que se incluye en la colección (+ info Archivos de catálogo y firmas digitales)
  • .cab: Los archivos CAB contienen datos comprimidos y se utilizan para la instalación de software de Windows, como archivos de sistema, componentes de red y controladores de dispositivos.

Nota: las explicaciones teóricas de los ficheros por su extensión no es mía, sino no se entendería :-).

Ahora que tenemos los ficheros dentro de nuestra carpeta Drivers, tenemos que preparar el script de instalación de los drivers a impresora, aquí va:

Importante, sabéis que por defecto los scripts en Intune se ejecutan en el PowerShell de x86, pero si queremos que se ejecuten en su versión x64 para ello las primeras 9 líneas del script:

# Restart Process using PowerShell 64-bit
If ($ENV:PROCESSOR_ARCHITEW6432 -eq “AMD64”) {
    Try {
        &”$ENV:WINDIR\SysNative\WindowsPowershell\v1.0\PowerShell.exe” -File $PSCOMMANDPATH
    }
    Catch {
        Throw “Failed to start $PSCOMMANDPATH”
    }
    Exit
}
De esta forma, no tenemos que escribir el Path completo para la ejecución del pnputil, si no forzáis la ejecución del script en x64 (quitando las primeras 9 líneas del script) debéis escribir la siguiente ruta para la ejecución del pnputil : C:\Windows\SysNative\pnputil.exe sino os encontraréis que el script no encontraré dicho ejecutable y no hará la instalación de vuestros drivers. Aquí os lo muestro con dos ventanas de PS una en x64 y otra en x86 (+ info aquí: https://call4cloud.nl/2021/05/the-sysnative-witch-project/ por favor leerlo y ampliar info vosotros mismos):

Dicho esto, mi script ya lleva la ejecución en x65 por lo que no habrá problema con la ejecución de pnputil sin especificar el path:

pnputil.exe /add-driver “.\*.inf” /subdirs /install
$driverName = “Canon iR-ADV 6575 UFR II”
$portName = “IP_192.168.230.11”
$printerName = “PRNES01MLF001”
Add-PrinterDriver -Name $driverName
Add-PrinterPort -name $portName -PrinterHostAddress “192.168.230.11”
Add-Printer -Name $printerName -DriverName $driverName -PortName $portName
Creo que se entiende bastante bien, lo “único” la primera parte pero vamos, le digo que instale todos los .inf que se encuentre en cualquier subdirectorio (/subdirs) desde donde se ejecuta el script y como lo hemos añadido todo al paquete .intunewim ya lo encuentra sin problemas y realiza la instalación.  También debemos prestar atención al nombre del driver, el cual tenéis que buscarlo en el fichero .inf:
Creo que el resto del script no tiene nada, variables con el nombre de la impresora, puerto y luego su configuración:
$portName = “IP_192.168.230.11”
$printerName = “PRNES01MLF001”
Add-PrinterDriver -Name $driverName
Add-PrinterPort -name $portName -PrinterHostAddress “192.168.230.11”
Add-Printer -Name $printerName -DriverName $driverName -PortName $portName
Con esto ya podemos instalar la impresora, pero si luego queremos desinstalarla aquí os dejo el script:
Más de lo mismo, ejecución en x64 (ahora ya no obligatoria pero yo lo prefiero y evitamos “incertidumbres”) y desinstalación de drivers e impresora:
# Restart Process using PowerShell 64-bit
If ($ENV:PROCESSOR_ARCHITEW6432 -eq “AMD64”) {
    Try {
        &”$ENV:WINDIR\SysNative\WindowsPowershell\v1.0\PowerShell.exe” -File $PSCOMMANDPATH
    }
    Catch {
        Throw “Failed to start $PSCOMMANDPATH”
    }
    Exit
}
Restart-Service -Name Spooler -Force
$driverName = “Canon iR-ADV 6575 UFR II”
$portName = “IP_192.168.230.11”
$printerName = “PRNES01MLF001”
Get-printer -Name $printerName | Remove-Printer
Get-PrinterPort -name $portName | Remove-PrinterPort
Get-PrinterDriver -Name $driverName | Remove-PrinterDriver
Entiendo que crear el paquete .intunewim no tiene sentido comentarlo, pero si lo que yo tengo dentro de cada paquete .intunewim para poder completar el proceso de instalación:
Los esenciales son la carpeta de Drivers y los scripts de instalación (Intune-Printer-Add.ps1) y desinstalación (Intune-Printer-Delete.ps1), el resto (imagen para el portal de Empresa y script de check (por si queremos comprobar si la impresora ya está instalada o no), lo añado para tenerlo todo siempre disponible). Pues bien, ahora solo nos queda publicarlo en Intune, aquí su configuración:
Creo que se entiende bien:
  • Instalación a nivel de sistema
  • Publicada en el Portal de Empresa
  • Regla de detección es comprobar que existe la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\Nombre-Impresora (el que le hemos puesto en el script que será como se cree en el registro)
  • Imagen: importante si la publicamos en el portal de empresa, seamos detallistas y que la foto se corresponda con la impresora que tienen los usuarios.
Ahora bien, podemos publicarla para que se instale directamente o bien que los usuarios la puedan buscar en el Portal de Empresa y la instalen cuando quieran (me gusta más esta opción, pero porque creo que debemos “educar” a los usuarios a que las aplicaciones o impresoras las puedes instalar ellos mismos cuando lo necesiten):
Como podéis apreciar es muy sencillo, solo tener en cuenta lo del PNPUTIL y los PS de x86 o x64 y poco más, el resto es súper sencillo!!
Microsoft Intune: Ca
Acceso Condicional:
8 COMENTARIOS
  • RCG / 22 marzo, 2023

    Buen articulo. Me queda la duda como has conseguido los drivers de la impresora (.inf, .cab, .cat). Que hay que hacer para descargarlos de la impresora? o donde están en el host o server?

      • pepe / 18 mayo, 2023

        como generas el initunewin?

          • Ernesto / 3 junio, 2023

            Muchas gracias, Santiago.
            Creo que es una gran aportación. Me queda una duda: al empaquetar los archivos en .intunewin solicita un “setup file”. ¿Cuál sería?
            Gracias.

  • pepe / 18 mayo, 2023

    Buenas tardes,

    Como haces el paquete .intunewim de los 3 ficheros (cat, inf y cab)

    Gracias.

  • pepe / 18 mayo, 2023

    Como juntas los ficheros cab, inf, cat y los scripts para hacer el paquete *.intunewin

DEJA UN COMENTARIO

Este sitio web utiliza cookies. Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra política de cookies. ACEPTAR

Aviso de cookies
Share This