- PnPUtil permite exportar, instalar y eliminar controladores desde la consola.
- Filtros por clase, bus e IDs facilitan auditoría y diagnóstico de dispositivos.
- Opciones avanzadas enumeran drivers, interfaces, clases y el árbol de dispositivos.
Si alguna vez te has visto reinstalando Windows o preparando varios equipos, sabrás que el tema de los controladores puede ser un auténtico dolor de cabeza. Conocer bien PnPUtil te permite crear copias de seguridad, instalar, desinstalar, auditar y hasta reiniciar dispositivos desde la línea de comandos de forma rápida y segura con herramientas nativas de Windows.
En esta guía completa vas a encontrar la información esencial y avanzada para trabajar con PnPUtil: desde exportar todos los drivers del sistema a una carpeta, hasta enumerar dispositivos con problemas, filtrar por clases o buses y gestionar controladores OEM. Todo explicado paso a paso, con ejemplos prácticos y comandos listos para copiar y pegar.
Qué es PnPUtil y dónde está
PnPUtil (PnPUtil.exe) es la utilidad de línea de comandos para administrar controladores y dispositivos Plug and Play. Viene incluida en todas las versiones de Windows desde Vista y se encuentra en %windir%\system32 (por ejemplo, C:\Windows\System32).
Para usarla, abre un Símbolo del sistema o PowerShell como administrador. La sintaxis general muestra todas las operaciones disponibles en versiones modernas de Windows: agregar, eliminar, exportar, enumerar, habilitar, deshabilitar, reiniciar y quitar.
PNPUTIL | /enum-devicetree |
/disable-device <...> | /enable-device <...> | /restart-device <...> |
/remove-device <...> | /scan-devices | /enum-classes |
/enum-interfaces | /enum-containers | /?]
Un consejo rápido: ejecuta primero la ayuda con PNPUTIL /? para confirmar las opciones soportadas por tu versión de Windows, ya que algunas marcas llegaron en Windows 10 1607, 1903, 2004 y otras en Windows 11 (21H2, 22H2 y 23H2).
La carpeta DriverStore y por qué importa
Windows guarda los controladores en la ruta del almacén de drivers: C:\Windows\System32\DriverStore. Ahí conviven drivers en uso y paquetes antiguos que pueden no ser necesarios y consumir espacio.
Antes de limpiar nada, conviene listar y exportar lo que tienes. De ese modo, si eliminas algún paquete que luego necesitas, podrás restaurarlo sin dramas desde tu copia de seguridad.
Exportar drivers con PnPUtil
Exportar copias de controladores es la base de cualquier migración o reinstalación. Puedes exportar uno en concreto o todos los paquetes OEM (terceros) del almacén a una carpeta de destino. Asegúrate de que la carpeta de destino exista antes de ejecutar el comando para evitar errores de ruta.
pnputil /export-driver oem6.inf .
pnputil /export-driver * C:\DriverBackup
La opción /export-driver está disponible desde Windows 10, versión 1607. Es ideal crear la carpeta en una unidad externa o red (por ejemplo, E:\Drivers) y lanzar la exportación en bloque con el asterisco.
También puedes hacerlo con PowerShell si lo prefieres: Export-WindowsDriver -Online -Destination ‘C:\RutaDestino’. Esta alternativa extrae los controladores presentes en el sistema en línea y los deposita en la carpeta indicada con una estructura clara por proveedor.
Enumerar paquetes de controladores (OEM)
Para inspeccionar qué hay instalado en el almacén de drivers (o ver todos los drivers instalados), utiliza /enum-drivers. Puedes filtrar por clase o mostrar los archivos de cada paquete si necesitas analizar el detalle.
pnputil /enum-drivers
pnputil /enum-drivers /class 'System'
pnputil /enum-drivers /files
Las marcas por clase llegaron en Windows 11 21H2 y la opción /files para ver los ficheros asociados se incorporó en Windows 11 22H2. Esto facilita identificar qué paquetes son de terceros y cuáles merecen limpieza.
Añadir e instalar controladores
Cuando necesitas integrar controladores en el almacén (y, si procede, instalarlos sobre hardware coincidente) recurre a /add-driver. Sirve tanto para un INF concreto como para patrones con comodines.
pnputil /add-driver X:\driver.inf
pnputil /add-driver C:\OEM\*.inf
pnputil /add-driver device.inf /install
La sintaxis completa admite marcas útiles como /subdirs para recorrer subcarpetas, /install para aplicar a dispositivos coincidentes y /reboot si hace falta reiniciar el equipo para completar la operación.
PNPUTIL /add-driver <filename.inf | *.inf>
Este comando está disponible desde Windows 10 1607. Cuando despliegues drivers de forma masiva desde un repositorio (por ejemplo, en un NAS con múltiples carpetas por modelo), /subdirs y /install te ahorran mucho tiempo.
Eliminar controladores del almacén
Para retirar un paquete del DriverStore, usa /delete-driver. Puedes desinstalarlo de los dispositivos que lo usan con /uninstall y forzar la eliminación incluso si está en uso con /force (extrema precaución).
pnputil /delete-driver oem0.inf
pnputil /delete-driver oem1.inf /force
PNPUTIL /delete-driver <oem#.inf>
Estas opciones están presentes desde Windows 10 1607. Forzar y reiniciar pueden ser necesarios en entornos donde un driver quede bloqueado, pero recuerda que puede afectar a la estabilidad si el dispositivo es crítico.
Gestionar dispositivos: deshabilitar, habilitar, reiniciar y quitar
PnPUtil no solo trata con paquetes, también opera directamente sobre dispositivos. Desde Windows 10 2004 puedes deshabilitar, habilitar, reiniciar o quitar hardware filtrando por instancia, ID, clase o bus.
Deshabilitar dispositivos
Desactiva por identificador de instancia, por hardware compatible, por clase o por bus. Las combinaciones con filtros son útiles en despliegues y diagnósticos de dispositivos problemáticos.
pnputil /disable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
pnputil /disable-device /deviceid "USB\Class_03"
pnputil /disable-device /class "USB" /bus "PCI"
PNPUTIL /disable-device
En Windows 11 22H2 llegaron los filtros por clase y bus, y la marca /force para deshabilitar dispositivos incluso si son críticos. Úsalo con cuidado porque puedes dejar servicios esenciales inactivos.
Habilitar dispositivos
El proceso inverso es igual de sencillo y admite los mismos filtros por clase y bus (Windows 11 22H2). Habilitar por ID o por clase acelera la puesta en servicio de dispositivos.
pnputil /enable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
pnputil /enable-device /deviceid "USB\Class_03"
pnputil /enable-device /class "USB" /bus "PCI"
PNPUTIL /enable-device
Reiniciar dispositivos
Muy útil tras actualizar drivers. Reinicia un dispositivo concreto, todos los que coincidan con un ID, o filtra por clase y bus, manteniendo el control de acciones de mantenimiento sin reiniciar todo el sistema.
pnputil /restart-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
pnputil /restart-device /deviceid "USB\Class_03"
pnputil /restart-device /class "USB" /bus "PCI"
PNPUTIL /restart-device
Quitar dispositivos
Intenta retirar dispositivos del sistema. Puedes quitar un subárbol completo (incluyendo secundarios) y forzar la operación si el dispositivo es crítico, algo útil al resolver conflictos de hardware persistentes.
pnputil /remove-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
pnputil /remove-device /deviceid "USB\Class_03"
pnputil /remove-device /class "USB" /bus "PCI"
PNPUTIL /remove-device
La marca /subtree y el reinicio opcional están disponibles desde Windows 10 2004; los filtros por clase/bus y el /force llegaron en Windows 11 22H2, ampliando el control granular.
Buscar cambios de hardware
Escanea el sistema para detectar cambios en el hardware de forma sincrónica o asíncrona. Ten en cuenta que se requieren privilegios de administrador para ejecutar este comando.
pnputil /scan-devices
/scan-devices
Si proporcionas /instanceid, el análisis se limitará a ese subárbol de dispositivo. Con /async se ejecuta en segundo plano, útil en entornos de trabajo concurrente.
Enumerar dispositivos y detectar problemas
El comando /enum-devices ofrece un inventario detallado. Puedes filtrar por conectados o desconectados, clase, problema, bus, y mostrar relaciones, servicios, pila, drivers, interfaces, propiedades o recursos.
pnputil /enum-devices
pnputil /enum-devices /connected
pnputil /enum-devices /instanceid "ROOT\SYSTEM\0000"
pnputil /enum-devices /class "Display"
pnputil /enum-devices /problem 28
pnputil /enum-devices /problem /deviceids
pnputil /enum-devices /deviceid "USB\Class_03"
pnputil /enum-devices /bus "PCI"
La sintaxis completa muestra el abanico de filtros y salidas enriquecidas. Muy útil para auditar y documentar un sistema de forma forense y repetible.
PNPUTIL /enum-devices ] ]
Las marcas se introdujeron de forma escalonada: conectados/clases/problemas desde Windows 10 1903; /drivers en 2004; y en Windows 11 21H2/22H2 llegaron bus, deviceids, services, stack, interfaces, properties y resources para una visión 360º.
Árbol de dispositivos: vista jerárquica
Desde Windows 11 23H2, /enum-devicetree permite listar el árbol de dispositivos a partir de una raíz concreta y añadir capas de detalle como servicios, pila, drivers o interfaces.
pnputil /enum-devicetree
pnputil /enum-devicetree "ROOT\SYSTEM\0000"
pnputil /enum-devicetree ROOT\SYSTEM\0000 /drivers
pnputil /enum-devicetree /connected /interfaces
pnputil /enum-devicetree /stack /interfaces /drivers /services
Los filtros /connected, /services, /stack, /drivers e /interfaces facilitan diagnósticos mucho más visuales de la topología de hardware y software sin salir de la terminal.
Enumerar interfaces, clases y contenedores
Para ver interfaces de dispositivo por GUID, habilitadas o deshabilitadas, usa /enum-interfaces. Desde Windows 11 22H2, la marca /properties muestra todas sus propiedades.
pnputil /enum-interfaces /enabled
pnputil /enum-interfaces /class "{884b96c3-56ef-11d1-bc8c-00a0c91405dd}"
PNPUTIL /enum-interfaces
Si lo que necesitas es revisar clases de dispositivo, /enum-classes lista todas y puede filtrar por nombre o GUID. La marca /services añade los servicios de clase para correlacionar dependencias.
pnputil /enum-classes
pnputil /enum-classes /class "Display"
PNPUTIL /enum-classes
Por último, /enum-containers (Windows 11 23H2) trabaja con contenedores de dispositivos: filtra por identificador, estado (conectado/desconectado), problemas y permite listar dispositivos y exportar a diferentes formatos.
pnputil /enum-containers
pnputil /enum-containers /containerid "{00000000-0000-0000-ffff-ffffffffffff}"
pnputil /enum-containers /connected /devices
pnputil /enum-containers /disconnected /devices /format xml /output-file disconnecteddevices.xml
PNPUTIL /enum-containers ]
La salida en TXT, XML o CSV permite integrar inventarios con herramientas externas, informes o scripts de automatización sin esfuerzo adicional.
Mapeo de comandos heredados
Si vienes de versiones antiguas, todavía se admiten atajos históricos. Aunque funcionan, Microsoft recomienda la sintaxis actual moderna por claridad y compatibilidad.
-a <filename.inf> ==> /add-driver <filename.inf>
-d <oem#.inf> ==> /delete-driver <oem#.inf>
-e ==> /enum-drivers
Migrar tus scripts a la sintaxis nueva te evitará sorpresas en próximas versiones de Windows y mantendrá una base de automatización más sólida.
Ejemplos prácticos de copia y restauración
Empecemos por lo esencial: crear la copia. Abre una terminal con privilegios y sitúate donde quieras guardar los drivers. Es buena idea usar una ruta sencilla, por ejemplo, E:\Drivers en un USB.
E:
mkdir Drivers
cd Drivers
pnputil /export-driver * ./
El sistema exportará todos los paquetes a la carpeta actual. Este enfoque te sirve antes de formatear o para replicar drivers en equipos del mismo modelo, minimizando tiempos de reinstalación.
Con el backup listo, hay dos formas de restaurar. Una es manual: abre el Administrador de dispositivos, botón derecho sobre el hardware, «Actualizar controlador», y luego «Buscar software de controlador en el equipo». Selecciona la carpeta del backup y deja que Windows detecte el INF adecuado.
La otra es automatizada con PnPUtil. Si guardaste drivers organizados por carpetas, puedes instalarlos todos de una pasada con comodines y subdirectorios, lo que acelera muchísimo despliegues repetitivos.
pnputil /add-driver 'E:\Drivers\*.inf' /subdirs /install /reboot
Recuerda guardar tu trabajo antes de ejecutar el comando con /reboot. Si la instalación de algún driver lo requiere, el equipo se reiniciará para terminar el proceso correctamente.
Más ejemplos útiles listos para usar
Para enumerar solo interfaces habilitadas (útil antes de deshabilitar algo sensible) puedes ejecutar este comando y luego aplicar filtros por clase si lo necesitas, preservando así la visibilidad del entorno.
pnputil /enum-interfaces /enabled
Para ver rápidamente problemas en dispositivos (por ejemplo, código 28, controlador no instalado), combina /problem con salida de IDs de hardware y compatibles y localiza exactamente qué falta y dónde.
pnputil /enum-devices /problem /deviceids
Si quieres explorar únicamente el hardware conectado, restríngete con /connected (muy útil en portátiles con bases o periféricos extra) para centrar el diagnóstico en lo que está activo.
pnputil /enum-devices /connected
Y para una visión jerárquica con toda la chicha (pila efectiva, servicios, controladores e interfaces), lanza el árbol con todas las capas de detalle, ideal para resolución avanzada de incidencias.
pnputil /enum-devicetree /stack /interfaces /drivers /services
Buenas prácticas y notas importantes
- Ejecuta PnPUtil siempre que sea posible en una consola con permisos elevados. Varias operaciones (por ejemplo, /scan-devices) requieren privilegios de administrador y fallarán silenciosamente sin ellos.
- Antes de borrar paquetes con /delete-driver, exporta tu copia y valida qué dispositivos lo utilizan. Evitarás dejar hardware sin soporte por un exceso de entusiasmo limpiando.
- Si vas a restaurar drivers en otro equipo, intenta que sea el mismo modelo y versión similar de Windows. Cambiar de edición/arquitectura puede hacer que algún INF no aplique por incompatibilidades de plataforma.
- No dependas de utilidades de terceros para copias básicas: con PnPUtil y Export-WindowsDriver tienes una solución limpia, sin adware y controlada por ti, lo que mejora la seguridad y el control.
- Documenta tus comandos: muchas marcas fueron llegando por oleadas (Windows 10 1607/1903/2004; Windows 11 21H2/22H2/23H2). Mantener una chuleta interna te ahorra tiempo cuando administras parques heterogéneos.
Dominar PnPUtil te da un control fino sobre controladores y dispositivos con cero dependencias externas: exporta todo tu almacén, audita por clases y buses, instala en masa desde carpetas con /subdirs, elimina paquetes obsoletos y diagnostica el árbol de hardware al detalle. Con un par de comandos bien aprendidos, el mantenimiento de drivers pasa de ser un engorro a una tarea rápida, segura y repetible.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.