2017-09-20 6 views
1

Pour l'installation de notre poste de travail, j'ai un script batch qui détecte le modèle de l'ordinateur et installe les pilotes nécessaires.Installation des pilotes avec pnputil.exe

Le premier script contient cette ligne:

[...] 

call %path%\drivers.bat 

[...] 

Le drivers.bat ressemble à ceci:

@echo off 
%~dp0 

for /f %%i in ('dir /b /s *.inf') do pnputil.exe -i -a %%i 

Son but est d'installer tous les pilotes .inf-il peut trouver au sein de son dossier.

Si je double-clique sur le fichier drivers.bat, cela fonctionne parfaitement. Dès que je l'appelle à partir du premier fichier de chauve-souris, je reçois un message d'erreur le long des lignes de:

La commande « pnputil.exe » est soit mal orthographié ou n'a pas pu être trouvé.

J'ai essayé d'utiliser

start /wait %path%\drivers.bat 

mais le résultat est le même.

Existe-t-il un autre moyen d'appeler le script? Ou est-il un meilleur moyen d'exécuter pnputil.exe?

Merci d'avance.

Edit:

@Mofi a souligné que DPInst.exe est bien meilleur pour l'installation des pilotes et il fonctionne parfaitement pour moi.

+1

Je recommande fortement de ne pas utiliser 'pnputil', mais utilisez' DPInst32.exe 'pour installer les pilotes 32 bits sur Windows 32 bits ou' DPInst64.exe' pour installer les pilotes 64 bits sur Windows 64 bits. 'DPInst' est le programme d'installation du package de pilotes Microsoft. C'est un outil gratuit inclus dans la plupart des paquets de pilotes de fabricants qui font vraiment l'installation du pilote (et non l'interface graphique affichée en installant des logiciels supplémentaires le plus souvent pas vraiment nécessaire). Exécuter simplement par exemple 'DPInst64.exe' depuis un répertoire contenant tous les fichiers de pilotes d'une carte réseau les installe tous. C'est comme ça qu'Intel installe leurs pilotes. – Mofi

+0

Merci @Mofi. Je l'ai essayé avec DPInst.exe et cela fonctionne comme un charme. – user363808

+0

Une cause possible de cette erreur est le fichier de commandes exécuté en mode 32 bits pour une raison quelconque. Un autre est le cas si le fichier batch parent définit une valeur pour 'PATH' qui n'inclut pas le dossier system32, bien que ce soit généralement une mauvaise idée. –

Répondre

2

peut-être essayer ce

for /f %%i in ('dir /b /s *.inf') do %SystemRoot%\System32\PnPutil.exe -i -a %%I 

De plus, pour voir où l'exécutable PnPUtil se trouve, de cmd.exe course:

where pnputil 
+0

Malheureusement, cela ne fonctionne pas. Je ne pense pas que PnPutil.exe se trouve sous% SystemRoot% \ System32 \. Merci quand même. J'ai utilisé dpinst.exe maintenant et cela fonctionne bien mieux. – user363808

+0

pouvez-vous essayer ceci 'faire PnPutil -i -a %% I' en supprimant simplement le chemin et' .exe' –