/
/

Cómo automatizar la creación de asignaciones de impresoras locales con GPO y PowerShell

por Team Ninja
How to Automate the Creation of Local Printer Mappings via GPO and PowerShell blog banner image

Resumen instantáneo

Este post ofrece una lista completa de comandos CMD básicos y una inmersión profunda en los comandos de Windows, con más de 70 comandos cmd esenciales tanto para principiantes como para usuarios avanzados. Explica comandos prácticos del símbolo del sistema para la gestión de archivos, la navegación por directorios, la solución de problemas de red, las operaciones de disco y la automatización con ejemplos reales para mejorar la productividad. Tanto si estás aprendiendo los comandos básicos de cmd como si ya dominas las herramientas avanzadas de la CLI de Windows, esta guía te ayudará a utilizar el Símbolo del sistema de forma más eficaz.

Puntos clave

  • Automatizar la asignación de impresoras con Preferencias de directiva de grupo (GPP): crea un GPO vinculado a la OU de destino y añade una impresora compartida en Configuración de usuario > Preferencias > Panel de control > Impresoras, indicando la ruta del recurso compartido (\\print-server-name\printer-share-name). Activa la selección de destino de nivel de elemento para limitar la impresora a usuarios o grupos concretos y ejecuta gpupdate /force en los dispositivos de destino para aplicar la configuración.
  • Automatizar la asignación de impresoras con PowerShell: usa Add-Printer -ConnectionName para asignar una impresora compartida a través de un servidor de impresión, o combina Add-PrinterPort y Add-Printer -DriverName para asignar una impresora local directamente por dirección IP. Usa Set-Printer -IsDefault $true para establecer la impresora predeterminada y ejecuta el script manualmente, mediante RMM o como parte de un despliegue más amplio.
  • Automatizar la asignación de impresoras con PowerShell y scripts de inicio o cierre de sesión: guarda un script de PowerShell de asignación de impresoras en una ruta compartida y actívalo automáticamente en cada sesión de usuario con schtasks /create … /sc onlogon o añadiéndolo como script de inicio de sesión en Configuración de usuario > Configuración de Windows > Scripts (inicio o cierre de sesión) del GPO.
  • Seguimiento del estado mediante el Registro: cuando una impresora se asigna correctamente, escribe una marca de tiempo y la lista de impresoras en una clave personalizada del Registro con Set-ItemProperty. Consulta esa clave con Test-Path y Get-ItemProperty para que GPP omita los dispositivos ya etiquetados y señale los que no lo están.
  • Selección dinámica basada en criterios: obtén la dirección IP de un dispositivo con Get-NetIPAddress o su pertenencia a grupos con whoami /groups y usa lógica condicional (if/elseif) para llamar a Add-Printer -ConnectionName con la ruta de impresora que corresponda a ese rango de IP o grupo.

La asignación de impresoras locales simplifica la configuración de impresoras en entornos grandes y con varios departamentos, de modo que los usuarios finales siempre imprimen en el equipo correcto. Facilita la asignación de dispositivos al imprimir, agiliza los flujos de trabajo y mejora la productividad gracias a configuraciones pensadas para el usuario.

¿Prefieres un tutorial en vídeo? Mira «Cómo automatizar la creación de asignaciones de impresoras locales con GPO y PowerShell» para saber más.

Métodos para asignar impresoras locales de forma eficaz

Las asignaciones manuales de impresoras suelen provocar errores y trabajos de impresión fallidos, lo que aumenta el número de tickets de soporte y sobrecarga a los técnicos. Con la automatización de TI, los técnicos pueden ofrecer asignaciones de impresoras coherentes en todos los puestos de trabajo y simplificar los procesos posteriores al imaging y de incorporación de usuarios.

📌 Requisitos previos:

  • Windows Server 2012 o posterior
  • Dispositivos cliente con Windows 10/11 Pro o Enterprise
  • Impresoras compartidas publicadas en Active Directory
  • Ejecución de scripts activada
  • Impresoras locales con dirección IP
  • Opcional: plataforma RMM de NinjaOne

📌 Estrategias de despliegue recomendadas:

Elige un método

💻
Mejor para usuarios individuales
💻💻💻
Mejor para empresas
Método 1: asignar impresoras con Preferencias de directiva de grupo (GPP)✓
Método 2: usar PowerShell para asignar impresoras compartidas o locales✓✓
Método 3: automatizar la asignación de impresoras locales con scripts de inicio o cierre de sesión✓✓
Método 4: controlar el estado de la asignación de impresoras en el Registro✓✓
Método 5: desplegar scripts segmentados según criterios dinámicos✓✓

Método 1: asignar impresoras con Preferencias de directiva de grupo (GPP)

📌 Casos de uso: GPP conecta automáticamente a los usuarios o equipos con las impresoras cercanas. A diferencia de los antiguos scripts de inicio de sesión, mantiene las conexiones estables y evita que se pierdan tras un reinicio. GPP también admite configuraciones de impresora por usuario y para todo el sistema, lo que aporta más control y flexibilidad.

📌 Requisitos previos:

  • Consola de administración de directivas de grupo (gpmc.msc)
  • Privilegios de administrador de dominio.

⚠️ Importante: comprueba las GPP en local antes de desplegarlas en toda una unidad organizativa. (Consulta ⚠️ Aspectos a tener en cuenta.)

  1. Abre la Consola de administración de directivas de grupo.
  2. Haz clic con el botón derecho en la unidad organizativa (OU) de destino y selecciona Crear un GPO en este dominio y vincularlo aquí….
  3. Ve a la siguiente ruta:

Configuración de usuario > Preferencias > Panel de control > Impresoras

  1. Haz clic con el botón derecho en Impresoras, selecciona Nuevo > Impresora compartida y define los parámetros.
    • Acción: Crear
    • Ruta del recurso compartido: \\<print-server-name>\<printer nombre del recurso compartido>
    • Si quieres, puedes marcar Establecer esta impresora como predeterminada.

💡 Consejo: puedes averiguar la ruta del recurso compartido abriendo printmanagement.msc y accediendo a tu servidor de impresión de destino. Haz clic con el botón derecho en la impresora en cuestión, selecciona Propiedades y abre la pestaña Compartir.

  1. En la pestaña Común, activa Destino de nivel de elemento (ILT) y añade las condiciones para aplicar la preferencia según los criterios indicados.
  2. Abre PowerShell en el dispositivo de destino e introduce el siguiente comando: gpupdate /force
  3. Verifica los cambios con este comando de PowerShell:
$computername = # Introduce el nombre de tu equipo
rundll32 printui.dll,PrintUIEntry /ge /c"\\$computername"

Método 2: usar PowerShell para asignar impresoras compartidas o locales

📌 Casos de uso: aprovecha los scripts de PowerShell para asignar impresoras locales TCP/IP o compartidas. Además, los scripts de esta sección se pueden ejecutar desde plataformas RMM, lo que automatiza la asignación de impresoras para los usuarios finales.

📌 Requisitos previos:

  • Controladores de impresora preinstalados.
  • Permisos de administrador.

Ejemplo de script para asignar una impresora compartida:

El siguiente script crea una conexión con impresoras compartidas a través de un servidor de impresión.

$printersharename = \\<print-server-name>\<printer share name>
# (p. ej., \\<print-server-name>\<printer share name>)
Add-Printer -ConnectionName "$printersharename"

💡 Nota: sustituye los marcadores de posición por los valores reales del nombre del servidor de impresión y del recurso compartido de la impresora.

Ejemplo de script para asignar una impresora local TCP/IP:

Este script crea una conexión de impresora local dentro de un endpoint y envía los trabajos directamente a la impresora, sin pasar por el servidor de impresión.

$portName = "IP_192.168.1.250"
Add-PrinterPort -Name $portName -PrinterHostAddress «192.168.1.250»Add-Printer -Name "Warehouse Zebra Printer" `
-DriverName "Zebra ZP 500 (ZPL)" `
-PortName $portName

💡Nota: sustituye los valores de ejemplo por la dirección IP real de la impresora de destino y el nombre de controlador correcto disponible en tu sistema.

Comando para establecer una impresora predeterminada:

$name = #introduce el nombre de la impresora (p. ej., Warehouse Zerbra Printer)
Set-Printer -Name "$name" -IsDefault $true

⚠️ Importante: comprueba que la sintaxis del script sea correcta antes de ejecutarlo en un equipo local o en varios endpoints. (Consulta ⚠️ Aspectos a tener en cuenta.)

Método 3: automatizar la asignación de impresoras locales con scripts de inicio o cierre de sesión

📌 Casos de uso: usa el Programador de tareas o los scripts de inicio y cierre de sesión para que los usuarios finales tengan siempre la misma asignación de impresoras en cada sesión. Este método también evita la desviación de configuración, ya que permite que la configuración se corrija sola en la siguiente ejecución.

📌 Requisitos previos:

  • Consola de administración de directivas de grupo (gpmc.msc)
  • Privilegios de administrador de dominio.
  • Acceso al Programador de tareas.

Ejemplo de script de inicio de sesión desde un CMD con privilegios elevados:

Crea un script personalizado de asignación de impresoras locales o elige uno de los ejemplos del Método 2. Guarda tu script como archivo .ps1 en la ruta que prefieras. En este ejemplo, el script se guarda en "C:\Scripts\MapPrinters.ps1".

schtasks /create /tn «MapPrinters» /tr "powershell.exe -File C:\Scripts\MapPrinters.ps1" /sc onlogon /ru SYSTEM

💡 Nota: MapPrinters.ps1 no existe de forma predeterminada: los administradores deben crearlo manualmente con la lógica de asignación de impresoras necesaria. Una vez creado, guarda el script en el controlador de dominio para que Active Directory pueda acceder a él y distribuirlo mediante scripts de inicio o cierre de sesión.

Configurar un script de inicio de sesión mediante GPO:

También puedes configurar los scripts de inicio de sesión desde la Consola de administración de directivas de grupo.

  1. Abre gpmc.msc y crea un GPO vinculado a tu OU de destino o edita uno existente.
  2. Ve a la siguiente ruta:

Configuración de usuario > Configuración de Windows > Scripts (inicio o cierre de sesión)

  1. Añade el script que prefieras como script de inicio de sesión buscando y seleccionando el archivo .ps1 correcto.
  2. Configura la directiva Activar la ejecución de scripts para permitir su ejecución en:

Configuración del equipo > Plantillas administrativas > Componentes de Windows > Windows PowerShell > Activar la ejecución de scripts

Método 4: controlar el estado de la asignación de impresoras en el Registro

📌 Casos de uso: usa el Registro para etiquetar los dispositivos con su configuración de asignación de impresoras, de modo que el destino de nivel de elemento (ILT) de GPP omita la reasignación cuando la clave ya existe. Además, así los técnicos pueden consultar los endpoints e identificar rápidamente los dispositivos que no cumplen la configuración para volver a asignarlos.

⚠️ Advertencia: los errores de configuración en el Registro pueden provocar inestabilidad del sistema y afectar al rendimiento del dispositivo. (Consulta ⚠️ Aspectos a tener en cuenta.)

Ejemplo de script de PowerShell para etiquetar dispositivos con asignaciones correctas:

New-Item -Path "HKCU:\Software\Org\PrinterMapping" -Force
Set-ItemProperty -Path "HKCU:\Software\Org\PrinterMapping" -Name "LastMapped" -Value (Get-Date).ToString(«u»)
Set-ItemProperty -Path "HKCU:\Software\Org\PrinterMapping" -Name "MappedPrinters" -Value "Accounting-Printer, Warehouse Zebra"

Ejemplo de consulta de PowerShell para las etiquetas del Registro:

if (Test-Path 'HKCU:\Software\Org\PrinterMapping') { Get-ItemProperty 'HKCU:\Software\Org\PrinterMapping' } else { ‘Missing’ }

Método 5: desplegar scripts segmentados según criterios dinámicos

📌 Casos de uso: despliega scripts dinámicos que obtengan la IP y los datos de grupo del endpoint para automatizar la asignación de impresoras según la ubicación y el departamento del usuario. Si se usa como script de inicio de sesión, mantiene correctas las asignaciones de impresoras y reduce impresiones erróneas y fallos.

⚠️ Advertencia: los scripts dinámicos son potentes, pero también arriesgados: unos requisitos poco claros, una validación deficiente o la falta de controles pueden provocar errores de configuración. (Consulta ⚠️ Aspectos a tener en cuenta.)

Ejemplo de script de PowerShell con segmentación por IP:

$ip = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.PrefixOrigin -eq "Dhcp" }).IPAddress
if ($ip -like "192.168.10.*") {
Add-Printer -ConnectionName "\\PrintServer01\Accounting-Printer"
}
elseif ($ip -like "192.168.20.*") {
Add-Printer -ConnectionName "\\PrintServer01\Sales-Printer"
}

💡 Nota: sustituye el nombre de grupo de ejemplo por uno que exista en tu Active Directory. Ajusta también la ruta de la impresora al recurso compartido correcto de tu entorno.

Ejemplo de script de PowerShell con segmentación por grupos:

$groups = (whoami /groups)
if ($groups -match "Accounting") {
Add-Printer -ConnectionName "\\PrintServer01\Accounting-Printer"
}

⚠️ Aspectos a tener en cuenta

Riesgos

Posibles consecuencias

Cómo revertirlo

Desplegar GPP sin probarlasLas GPP pueden ocultar errores de configuración que afecten gravemente a las asignaciones de impresoras locales.Prueba las configuraciones en un entorno controlado para comprobar su efecto y validez antes de un despliegue general.
Sintaxis de script incorrectaLos scripts mal escritos pueden provocar errores e impedir que la configuración de asignación de impresoras se aplique correctamente.Prueba los scripts en local para comprobar que funcionan y despliégalos por fases para supervisar el impacto poco a poco y reducir el riesgo.
Errores de configuración en el RegistroLos cambios incorrectos en el Registro pueden afectar gravemente al rendimiento y la estabilidad del dispositivo.Haz una copia de seguridad del Registro de Windows antes de hacer cambios para poder revertirlos fácilmente si algo sale mal.
Scripts dinámicos mal escritosAunque son potentes, los scripts dinámicos pueden introducir puntos de fallo porque dependen de varios factores, lo que puede derivar en asignaciones de impresoras incorrectas.Valida los scripts con cuidado, usa convenciones de nombres claras al comprobar los grupos y presta atención a las VPN cuando utilices scripts dinámicos.

Solución de problemas en la asignación de impresoras locales

Al añadir impresoras locales mediante GPO y scripts, las cosas pueden torcerse. En esta sección te mostramos cómo resolver los problemas más habituales al asignar impresoras locales.

Problema n.º 1: la impresora no aparece al añadirla mediante GPO

Abre una consola de PowerShell y ejecuta el siguiente script: gpresult /h report.html

Abre report.html y comprueba que las configuraciones aplicadas son correctas. Verifica también que el GPO está vinculado a la OU correcta y que los permisos de uso compartido de la impresora de destino están activados.

Problema n.º 2: fallos al instalar el controlador

La asignación de impresoras locales puede fallar si una directiva bloquea el controlador de la impresora o si está instalado el controlador equivocado. Para evitarlo, preinstala los controladores en el endpoint de destino, ya sea manualmente o con el cmdlet Add-PrinterDriver.

También puedes abrir gpmc.msc y crear o editar un GPO vinculado a la OU de destino. Ve a Configuración del equipo > Directivas > Plantillas administrativas > Impresoras, haz clic con el botón derecho y edita Restricciones de Apuntar e imprimir indicando los nombres de tus servidores de impresión.

Problema n.º 3: el script no se ejecuta

Abre gpmc.msc, crea o edita un GPO y ve a Configuración del equipo > Componentes de Windows > Windows PowerShell. Configura la directiva Activar la ejecución de scripts seleccionando Permitir scripts locales y remotos firmados.

Los técnicos también pueden añadir un registro sencillo a los scripts, como Out-File C:\Temp\MapPrinters.log -Append, para evitar fallos silenciosos.

Problema n.º 4: faltan claves del Registro

Comprueba que estás apuntando al subárbol correcto del Registro. Para impresoras por usuario, ejecuta el script en el contexto del usuario consultando el subárbol HKCU. En cambio, las asignaciones para todo el sistema deben usar HKLM.

Aspectos a considerar al gestionar impresoras locales en los endpoints

La asignación de impresoras locales simplifica la distribución de los trabajos de impresión entre las impresoras de un entorno. Por sí sola ya es una herramienta potente, pero estos son algunos aspectos que te ayudarán a sacarle el máximo partido.

Evitar impresoras duplicadas

Ejecutar varias instancias del mismo script puede crear impresoras duplicadas sin querer y hacerte perder tiempo. Añade Get-Printer -Name "PrinterName" a tu script para que compruebe si la impresora ya existe y evitar duplicados.

Alternativa para impresoras sin conexión

Las impresoras inaccesibles pueden ralentizar el inicio de sesión y provocar fallos de asignación. Para omitir impresoras o servidores que no responden, añade Test-Connection -Quiet -Count 3 «PrinterName» a un script de PowerShell.

Permisos de impresión

Aunque la asignación de impresoras locales esté bien hecha, los usuarios no podrán imprimir sin los permisos de uso compartido correctos. Abre printmanagement.msc, ve a Propiedades de impresora > Seguridad de la impresora en cuestión y confirma que los grupos adecuados tienen permisos de impresión.

Servicios de NinjaOne para automatizar la gestión de impresoras locales

NinjaOne ofrece servicios automatizados que ayudan a los MSP y a la informática interna a desplegar asignaciones de impresoras dinámicas a gran escala.

Servicio de NinjaOneDefiniciónCómo ayuda en la asignación de impresoras locales
PowerShell remotoPowerShell remoto permite a los técnicos ejecutar scripts en remoto y en tiempo real.Automatiza el despliegue de scripts de PowerShell para la asignación de impresoras locales de forma coherente y centralizada en todo el entorno.
Campos personalizadosLos técnicos pueden usar campos personalizados para guardar información dentro de un endpoint y obtener de un vistazo más detalles del dispositivo.Usa los campos personalizados para etiquetar, organizar y segmentar dispositivos concretos, lo que permite desplegar scripts de forma más precisa y eficiente.
Supervisión en tiempo real y alertas automatizadasPermite supervisar los endpoints de forma proactiva y crear alertas personalizadas para reducir el MTTR.Supervisa la asignación de impresoras locales de forma continua y usa alertas personalizadas para lanzar automáticamente scripts de corrección, reduciendo la ejecución manual.
Automatización basada en políticasEstandariza las configuraciones del sistema en todos los endpoints y automatiza los parches para el cumplimiento y el mantenimiento.Aprovecha este servicio para lanzar acciones automáticamente cuando la política de asignación de impresoras se desvíe, antes de que incumpla la normativa.

Automatiza la asignación de impresoras locales para simplificar su gestión y resolución de problemas

Puedes usar scripts de PowerShell y CMD para automatizar el despliegue de impresoras locales. Además, programar su ejecución automática al iniciar sesión garantiza la coherencia para todos los usuarios del entorno.

Para despliegues centralizados, puedes usar GPO para configurar asignaciones de impresoras compartidas junto con etiquetas del Registro para el destino de nivel de elemento. También puedes recurrir a una plataforma unificada de operaciones de TI, como NinjaOne, para mejorar la visibilidad de los endpoints y afinar la automatización de las políticas relacionadas con las impresoras.

Temas relacionados:

Guía de inicio rápido

NinjaOne sí dispone de funciones para automatizar la asignación de impresoras locales. En concreto:

  1. Existe un script nativo llamado «Add Network Printer» que te permite:
    • Añadir o quitar una impresora de red compartida
    • Configurar la impresora como una conexión por equipo
    • Aplicar la asignación de la impresora a todos los perfiles de usuario
  2. El script se puede usar en la biblioteca de automatización de NinjaOne, lo que significa que puedes:
    • Desplegarlo en varios dispositivos
    • Programar la asignación de impresoras
    • Aplicarlo mediante políticas

Detalles clave:

  • El script está pensado para añadir impresoras de red compartidas
  • Funciona en todos los perfiles de usuario del equipo
  • Se puede desplegar y automatizar fácilmente desde la plataforma de NinjaOne

FAQs

Para las impresoras asignadas con PowerShell, usa Remove-Printer -Name «PrinterName» para desasignar un dispositivo concreto.

Para las impresoras desplegadas por GPO, edita la entrada GPP vinculada y cambia la acción de «Actualizar» a «Eliminar». A continuación, ejecuta gpupdate /force en los dispositivos de destino para aplicar la eliminación. En las impresoras asignadas mediante etiquetas del Registro, borra también la clave correspondiente para que la lógica de seguimiento no siga informando de un estado «asignado» obsoleto.

Consulta el método de etiquetado en el Registro que se describe en esta guía. Permite a los técnicos consultar dispositivos de forma masiva y detectar las entradas que faltan o están obsoletas. El mejor software RMM amplía esta posibilidad con campos personalizados e informes centralizados. Así, los equipos de TI pueden obtener una visión global del cumplimiento de las asignaciones en todo el inventario en lugar de revisar cada equipo uno a uno con Get-Printer.

Asignar una impresora solo crea la conexión, pero no concede derechos de impresión. La cuenta o el grupo del usuario también debe tener el permiso de impresión sobre el objeto de impresora compartida. Puedes configurarlo en Propiedades de impresora > Seguridad, dentro de Administración de impresión. Sin esa capa de permisos, una impresora bien asignada seguirá fallando o mostrará un error de acceso denegado cuando el usuario intente imprimir.

Quizá también te interese…

¿Listo para simplificar los aspectos más complejos de las TI?