- PnPUtil gère les pilotes et les périphériques depuis la console avec un contrôle total.
- DriverStore centralise les packages ; vous pouvez les exporter, les installer et les nettoyer.
- Commandes clé : ajouter/supprimer/exporter, énumération des pilotes/périphériques/classes.
- La résolution des contextes 32/64 bits (SysNative) empêche les échecs de déploiement.

Si vous gérez des équipes WindowsTôt ou tard, vous devrez vous battre avec des contrôleurs. Dans ce contexte, PnPUtil est le couteau suisse qui vous fait gagner du temps lors de la gestion des packages conducteurs depuis la ligne de commande de manière sécurisée et répétable.
Au-delà de l'installation d'un .INF isolé, cet outil permet ajouter, installer, répertorier, exporter, désactiver, redémarrer et supprimer à la fois les pilotes et les périphériques, et ce avec une granularité de classe, de bus et d'identifiants matériel ou des cas spécifiques. Vous verrez des commandes réelles, Ruses et les problèmes courants (et leurs solutions) afin que vous puissiez les mettre en pratique sans aucun problème.
Qu'est-ce que PnPUtil et que peut-il faire ?
PnPUtil (PnPUtil.exe) est un utilitaire de console Permet à un administrateur d'effectuer des opérations sur les packages de pilotes Plug-and-Play (PnP) et de gérer les périphériques. Idéal pour les déploiements, les images d'entreprise ou tout simplement pour garder le magasin du conducteur propre.
Avec PnPUtil vous pouvez ajouter un package au magasin de pilotes, installez-le sur l'ordinateur, supprimez-le et listez ce qui est déjà présent. Dans la liste, les packages OEM (non inclus dans le système) sont affichés, tandis que les packages non OEM intégrés font partie de l'installation de base de Windows ou de ses Service Packs et n'apparaissent pas comme OEM.
En plus des pilotes, PnPUtil vous permet de travailler avec appareils spécifiquesDésactiver, activer, redémarrer, supprimer, analyser les modifications matérielles ou même afficher l'arborescence des périphériques et les classes de configuration. Le tout depuis le même outil.
Quelque chose de fondamental : beaucoup de ces opérations nécessitent ouvrir la console avec des privilèges administratifs, en particulier lorsque vous modifiez l'état du système ou effectuez une analyse du matériel.

Où se trouve PnPUtil et comment obtenir de l'aide ?
PnPUtil est inclus en standard dans Windows depuis Vista ; vous pouvez le trouver dans %windir%\system32 Il n'y a pas de package de téléchargement séparé. Vous pouvez donc l'utiliser sur n'importe quel système d'exploitation Windows moderne sans installation supplémentaire.
Pour afficher l'aide intégrée, ouvrez un fenêtre de la console en tant qu'administrateur et exécutez :
pnputil /?
Vous y verrez la syntaxe de toutes les commandes disponibles et leurs modificateurs, ce qui vous permet de découvrir les paramètres avancés sans quitter la séance.

DriverStore et fichiers INF : ce que vous devez savoir
Windows maintient un référentiel de packages de pilotes dans %systemroot%\System32\DriverStore\FileRepository. L'appel est-il DriverStore, où sont stockés les pilotes que le système reconnaît et installe lorsqu'il détecte le matériel correspondant.
Les fichiers .INF sont les « livres de cuisine » qui indiquent à Windows comment installer et configurer un pilote. Ils sont généralement fournis avec des fichiers .cat (catalogue de signatures), .dll et parfois .cab. Certains modèles s'installent avec un seul fichier INF, tandis que d'autres nécessitent plusieurs fichiers.
Un cas typique dans les environnements d’entreprise est pilotes d'imprimante pré-intégrés Pour plusieurs modèles. Ainsi, lors du déploiement des périphériques, les pilotes sont déjà disponibles sur le système, sans aucune copie manuelle. Pour ce faire, ajoutez les packages au DriverStore avec PnPUtil.
Exemple classique : depuis une console CMD avec des privilèges, dans le dossier où se trouve le fichier INF, vous pouvez exécuter :
pnputil -a Citizen.inf
le modificateur -a (ajouter) Ajoutez le paquet au dépôt Windows. Vous pouvez également inclure plusieurs fichiers INF simultanément à l'aide d'un caractère générique si vous gérez différents modèles d'un même fabricant dans la même structure :
pnputil -a *.inf
Au cours du processus, Windows peut vous avertir de la signature du contrôleurIl est important d'utiliser des pilotes signés par le fabricant pour éviter les risques de sécurité ; en raison du coût, certains fournisseurs ne signent pas l'intégralité de leur catalogue, alors tenez compte de la source et de la fiabilité du package avant de l'intégrer.
Commandes essentielles de PnPUtil avec des exemples concrets
La puissance de PnPUtil réside dans sa gamme de commandes. Voici un résumé. exhaustif et en espagnol avec les exemples clés que vous devriez maîtriser.
Ajouter et installer des pilotes
Ajouter un paquet de béton à l'entrepôt :
pnputil /add-driver x:\driver.inf
ajouter divers forfaits à partir d'un dossier :
pnputil /add-driver c:\oem\*.inf
Ajouter et installer le package immédiatement sur les appareils existants :
pnputil /add-driver device.inf /install
Astuce : si vous souhaitez charger de nombreux pilotes dans une structure avec des sous-dossiers, vous pouvez utiliser /sous-répertoires pour les parcourir récursivement et les combiner avec /installer de les appliquer dès maintenant.
Supprimer les colis de l'entrepôt
Supprimer un package spécifique de DriverStore :
pnputil /delete-driver oem0.inf
Forcer la suppression s'il y a des blocages :
pnputil /delete-driver oem1.inf /force
N'oubliez pas que c'est pratique supprimer uniquement les packages inutilisés pour éviter les effets secondaires sur les appareils actifs.
Activation et désactivation des appareils
Désactiver un appareil par son identifiant d'instance:
pnputil /disable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
Désactiver tous les dispositifs qui correspondent à un identifiant matériel ou compatibles :
pnputil /disable-device /deviceid "USB\Class_03"
Désactiver les appareils d'un cours de béton sur un bus donné :
pnputil /disable-device /class "USB" /bus "PCI"
Pour opération inverse, vous pouvez les activer avec des paramètres équivalents :
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"
Ces actions sont utiles lorsque vous avez besoin surveiller l'état des appareils en masse ou par critères d'identification ; par exemple, la gestion Contrôleurs USB dans des environnements avec de nombreux périphériques.
Lister les classes, les périphériques et les pilotes
Lister toutes les classes configuration de l'appareil :
pnputil /enum-classes
Lister des informations sur une classe spécifique (par exemple, écrans):
pnputil /enum-classes /class "Display"
Liste des périphériques système. Les périphériques activés apparaissent comme Lancer et les personnes handicapées comme désactivé:
pnputil /enum-devices
Variantes d'énumération d'appareils très utiles :
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"
Énumérer Packs de pilotes OEM:
pnputil /enum-drivers
Filtrer par classe ou inclure les fichiers qui composent chaque package :
pnputil /enum-drivers /class "System"
pnputil /enum-drivers /files
Liste des interfaces
Voir seulement interfaces activées:
pnputil /enum-interfaces /enabled
Filtrer par GUID de classe interface:
pnputil /enum-interfaces /class "{884b96c3-56ef-11d1-bc8c-00a0c91405dd}"
Cela s'avère utile lorsque vous diagnostiquez des problèmes de communication ou des services associés à certaines interfaces.
Pilotes d'exportation
Exporter un forfait individuel:
pnputil /export-driver oem6.inf .
Exporter tous les forfaits vers un itinéraire (doit exister préalablement) :
pnputil /export-driver * c:\backup
L’exportation de masse est parfaite pour hacer sauvegarde ou préparer les déploiements sur d’autres ordinateurs avec le même système d’exploitation.
Supprimer, redémarrer et analyser les appareils
supprimer un appareil par instance:
pnputil /remove-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
Supprimer les appareils par identifiant matériel/compatible, ou par classe et bus :
pnputil /remove-device /deviceid "USB\Class_03"
pnputil /remove-device /class "USB" /bus "PCI"
Redémarrer les appareils de manière sélective ou selon des critères larges :
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"
Explorer les changements matériels détecté par le système :
pnputil /scan-devices
Important: des privilèges d'administrateur sont requis pour exécuter l'analyse de l'appareil.
Arborescence des périphériques et des conteneurs
Énumérez les arbre complet d'appareils :
pnputil /enum-devicetree
choisir un nœud racine concret et inclure des informations supplémentaires :
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
Énumérer conteneurs d'appareils (tous, un spécifique et avec des options de sortie) :
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
Ces vues avancées aident à comprendre les dépendances et les piles des conducteurs et des services en cas d’incidents complexes.
Exporter et installer des pilotes en masse (CMD et PowerShell)
Pour déplacer des contrôleurs entre des ordinateurs du même modèle et du même système, vous pouvez exporter l'intégralité du DriverStore avec PnPUtil et réimportez-le. C'est rapide et élimine le besoin d'utilitaires tiers.
Tout d’abord, exportez tous les packages vers un dossier de destination déjà créé :
pnputil /export-driver * c:\temp\Drivers
Alternativement, à partir de PowerShell vous disposez de l'applet de commande native pour le système en ligne : Exporter le pilote Windows
Export-WindowsDriver -Online -Destination "c:\temp\Drivers"
Une fois que vous avez ce dossier sur une clé USB, sur un réseau ou sur un NAS, sur l'ordinateur de destination, vous pouvez installer les pilotes Il existe deux méthodes : manuellement (clic droit sur le fichier .INF et « Installer ») ou automatiquement en analysant les sous-dossiers et en appliquant l'ensemble des modifications.
pnputil /add-driver "c:\temp\Drivers\*.inf" /subdirs /install /reboot
Le choix /reboot permet au système de redémarrer Si nécessaire, pour terminer l'installation. Assurez-vous de sauvegarder votre travail, car un redémarrage sera parfois nécessaire pour que le pilote soit opérationnel.
Si vous intégrez des pilotes d’imprimante génériques ou de fabricant, vous verrez qu’après l’importation, apparaître dans la liste des pilotes disponibles du système, ce qui simplifie votre sélection lors de l'ajout de nouvelles imprimantes ou périphériques.
Nettoyage et entretien de l'entrepôt du contrôleur
Avec le temps, le DriverStore peut accumuler des packages que vous n'utilisez plus. maintenir un système plus propre et plus sûr, il est conseillé de vérifier périodiquement ce qu'il y a à l'intérieur.
Commence par liste des packages OEM (tiers) présents dans l'équipe :
pnputil.exe /enum-drivers
Si vous détectez un package qui n'est pas utilisé et que vous souhaitez supprimez-le en indiquant son nom OEM, vous pouvez le faire avec la commande appropriée :
pnputil.exe /delete-driver oemX.inf
Quand vous avez besoin ajouter un nouveau pilote ou restaurer un fichier supprimé, réintégrer le dans le DriverStore :
pnputil.exe /add-driver oem0.inf
Pour sauvegarder, n'oubliez pas que vous pouvez exporter un package spécifique ou l'intégralité de l'entrepôt avec :
pnputil.exe /export-driver oem6.inf C:\DriverBackup
pnputil.exe /export-driver * C:\DriverBackup
Si jamais vous devez réinstaller un périphérique à l'aide d'un chemin local, le Administrateur de l'appareil permettre Mettre à jour le pilote et recherchez dans le dossier de sauvegarde que vous avez préparé. C'est un moyen simple de réappliquer ce que vous avez exporté.
Cas réels et résolution de problèmes
Dans les déploiements d'imprimantes à partir d'un serveur joint à un domaine ou dans les installations via Intune (Win32), il est courant que vous ayez besoin injecter le pilote dans l'entrepôt Avant d'enregistrer le pilote d'impression, PnPUtil est essentiel.
Si le processus s'exécute en 32 bits mais que vous souhaitez exécuter la version 64 bits de PnPUtil, appelez le chemin SysNative Pour éviter la redirection vers SysWOW64 :
C:\Windows\SysNative\pnputil.exe /add-driver "C:\ruta\al\driver.inf" /install
Maintenant, il y a un problème classique : la commande répond «Le système ne trouve pas le fichier spécifié” même si le fichier INF existe. Cela est généralement dû à des problèmes de contexte : chemin relatif, répertoire de travail, autorisations ou processus 32 bits ne résolvant pas correctement System32 sans SysNative.
Bonnes pratiques pour éviter cette erreur :
- Utiliser des chemins absolus et avec des guillemets : « C:\\temp\\PrintDriver\\KOBS9J__.inf ».
- Appelez toujours PnPUtil en 64 bits via %windir%\SysNative\pnputil.exe lorsque le lanceur est 32 bits.
- Vérifiez que l'INF et ses dépendances (.cab, .dll) sont dans le même dossier de travail ou sur des itinéraires accessibles.
- Si vous exécutez à partir d'Intune, n'oubliez pas qu'il s'exécute en tant que Système: Pré-créez des dossiers de journaux (par exemple C:\Temp) et vérifiez les ACL.
Exemple d'installation avec PowerShell et Start-Process robuste, dans un contexte 64 bits et avec journalisation de sortie :
$pnputil = "$env:windir\SysNative\pnputil.exe"
$inf = "C:\\temp\\PrintDriver\\KOBS9J__.inf"
$log = "C:\\temp\\pnputil_log.txt"
New-Item -Path (Split-Path $log) -ItemType Directory -Force | Out-Null
Start-Process -FilePath $pnputil -ArgumentList @("/add-driver", $inf, "/install") -Wait -NoNewWindow -RedirectStandardOutput $log -PassThru
Si le journal est vide, essayez rediriger également l'erreur ou capturer directement la sortie avec PowerShell natif (sans Start-Process), pour conserver le code de retour :
& $pnputil /add-driver $inf /install | Tee-Object -FilePath $log
Dans les installations d'imprimantes, un flux typique est : ajouter le pilote avec PnPUtil, puis enregistrer le Le pilote d'imprimante (par exemple, avec Add-PrinterDriver) en référençant le chemin d'accès au fichier INF déjà présent dans le DriverStore. Si le paquet contient un fichier .cab (comme gppcl6.cab pour les pilotes Canon), assurez-vous qu'il est présent, car le fichier INF peut en dépendre.
Un autre échec récurrent dans Intune est que le scénario Un fichier « tick » a été créé avec succès à la fin (signalant que le script a atteint sa fin), mais le pilote n'a pas été installé. Cela signifie généralement que le processus de démarrage ne s'est pas levé correctement ou le contexte n'a pas trouvé le chemin INF. Utiliser SysNative, les chemins complets, créer d'abord C:\Temp et valider le code de sortie de PnPUtil permet de boucler la boucle.
Enfin, lorsque vous faites un Recherche de modifications avec /scan-devicesN'oubliez pas que cela nécessite des droits d'administrateur. Exécutez toujours la console avec des droits élevés pour éviter les erreurs d'accès.
La maîtrise de PnPUtil fait la différence dans les environnements réels : de la préparation des images avec des imprimantes pré-intégrées à l'exportation des pilotes avant formatear, pour nettoyer le DriverStore et diagnostiquer les périphériques problématiques. Grâce aux commandes et aux pratiques présentées dans cet article, vous disposez d'un Une base solide pour gérer les pilotes sous Windows de manière fiable et avec moins de surprises.
Écrivain passionné par le monde des octets et de la technologie en général. J'aime partager mes connaissances à travers l'écriture, et c'est ce que je vais faire dans ce blog, vous montrer toutes les choses les plus intéressantes sur les gadgets, les logiciels, le matériel, les tendances technologiques et plus encore. Mon objectif est de vous aider à naviguer dans le monde numérique de manière simple et divertissante.
