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:
- 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)
- 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:
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:
- 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.
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?
Santiago Buitrago Reis / Autor / 22 marzo, 2023
Buenos días:
Los drivers son los que te descargas normalmente para instalarla manualmente, en vez de instalar lo descomprimes y ahí tienes los ficheros.
Un saludo
pepe / 18 mayo, 2023
como generas el initunewin?
Santiago Buitrago Reis / Autor / 18 mayo, 2023
Hola:
La creación del fichero .intunewin se hace con esta herramienta que te paso aquí el enlace: https://learn.microsoft.com/es-es/mem/intune/apps/apps-win32-prepare. Para crear una paquete intunewin con los scripts, drivers, instaladores, etc.. es tener una carpeta y en la raiz de la misma poner los scripts y luego los drivers los he puesto en una subcarpeta, pero podría tenerlos todos directamente en la raiz (pero no quedaría nada bien). Aquí tienes la estructura de una carpeta como te comento:
16/03/2023 18:47
16/03/2023 18:46
16/03/2023 18:30
16/03/2023 18:40 70.007 HPE60055-image.png
16/03/2023 16:46 628 Intune-Printer-Add.ps1
16/03/2023 18:30 542 Intune-Printer-Check.ps1
16/03/2023 18:30 593 Intune-Printer-Delete.ps1
Es sencillo, luego Intune descomprime todo en el equipo local en una carpeta temporal y lo tienes tal cual, luego tu haces referencia en los scripts a rutas relativas.
Un saludo
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.
Santiago Buitrago Reis / Autor / 9 junio, 2023
Hola Ernesto:
Debería ser el .ps1 que tienes para realizar la instalación, pero puede ser cualquier otro porque al final tu le vas a indicar manualmente el proceso de instalación y desinstalación vía PowerShell.
Un saludo
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