11/10/2024

PowerShellWindows Client

PowerShell : Exporter les pilotes tiers de Windows

I. Présentation

Le temps passe, et plus il passe, plus on installe de périphériques divers et variés sur notre machine impliquant l'installation de différents pilotes pour assurer le bon fonctionnement de l'ensemble. Certains pilotes officiels provenant directement du constructeur ne se trouvent pas toujours facilement sur Internet... Dans ce cas, il peut être intéressant de le récupérer sur une machine Windows où l'on sait qu'il est présent.

PowerShell 4.0 intègre un commandlet nommé "Export-WindowsDriver" et qui permet d'exporter les fichiers .inf de l'ensemble des pilotes tiers (Third-party drivers) présent sur une machine Windows. C'est d'ailleurs ce que nous allons voir dans ce tutoriel.

II. Procédure

Commencez par ouvrir une console PowerShell en tant qu'Administrateur, sinon vous ne pourrez pas exporter les pilotes. Nous allons exporter l'ensemble des pilotes non-Microsoft (tiers) vers un dossier : C:\ThirdPartyDrivers

Pour cela, saisissez cette commande :

$Export = Export-WindowsDriver -Online -Destination "C:\ThirdPartyDrivers"

L'option Online permet d'indiquer que l'on souhaite effectuer l'opération directement sur l'installation de Windows en cours de fonctionnement. En fait, ce commandlet est étroitement lié à l'utilitaire DISM.

Si l'on se rend dans le répertoire cité précédemment, on peut voir la présence de nombreux répertoires correspondant aux pilotes :

exportdrive1

Là, je sais ce que vous vous dîtes : comment retrouver mon pilote parmi cet ensemble de dossiers ?

Pour les retrouver, il va falloir malgré tout chercher un peu, mais pour s'aider voici une commande PowerShell intéressante où l'on va afficher les valeurs contenues dans la variable $Export utilisé précédemment :

$Export | ft OriginalFileName, ClassName, ProviderName, Version -AutoSize

On obtiendra un résultat comme ceci :

exportdrive2

Le champ "OriginalFileName" sélectionné comprend le chemin vers le fichier .inf du pilote. Ce chemin est en fait très semblable à celui de notre export, je m'explique.

La racine est toujours la même à savoir "C:\Windows\System32\DriverStore\FileRepository\" alors que pour notre export la racine est "C:\ThirdPartyDrivers\". Cela signifie qu'en repérant le driver qui nous intéresse dans la sortie PowerShell, on pourra retrouver facilement le dossier correspondant dans notre export puisqu'il porte le même nom.

Par exemple :

Le chemin...

"C:\Windows\System32\DriverStore\FileRepository\prnms001.inf_amd64_4fa1863520b2418e\"

...Deviendra

"C:\ThirdPartyDrivers\prnms001.inf_amd64_4fa1863520b2418e\"

Après, vous pouvez personnaliser la sortie selon les informations que vous souhaitez obtenir. On peut aussi imaginer rechercher uniquement les pilotes émanant du constructeur Intel :

$Export | Where{ $_.ProviderName -Match "Intel" } |ft OriginalFileName, ClassName, ProviderName, Version -AutoSize

Comme le montre la commande ci-dessus, il suffit d'ajouter une condition afin de filtrer les résultats par rapport au "ProviderName".

Note : Il est à noter que pour certains pilotes ce sera indiqué "Intel", d'autres "Intel Corporation" ou encore "Intel (R) Corporation". Le fait d'employer la clause "match" permet de prendre en compte ces différentes variantes puisque l'on cherche la présence du mot "Intel".

exportdrive3

Pour obtenir de l'aide sur les différentes options, consultez le TechNet "Export-WindowsDriver" . Il est à noter également la présence du commandlet Get-WindowsDriver qui permet de lister les pilotes tout simplement.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.