[PowerShell] – Module de gestion des pilotes

Une des opérations les plus fastidieuses lors de la conception et la mise en œuvre d’un banc de déploiement/migration de poste de travail consiste à réaliser l’inventaire des pilotes utilisés par ces équipements, réaliser leur sauvegarde ou les télécharger, puis de les intégrer dans ce banc. Aujourd’hui les systèmes d’exploitation Windows ne permettent pas de sauvegarder les pilotes utilisés (à l’exception de Windows 8.1) et encore moins de les importer dans MDT ou SCCM. Des outils existent tels que DriverBackup! (Je vous en ai d’ailleurs parlé lors dans mes précédents articles). Cependant j’ai pu remarqué que la sauvegarde de certains pilotes n’était pas réalisée correctement (notamment les pilotes graphiques et Bluetooth).
Par conséquent déclarer les pilotes Windows 8 x64 pour un dell Latitude E6420 dans SCCM ou MDT est une opération qui peut nécessiter quelques heures de travail. Imaginez donc lorsque vous avez plusieurs modèles et plusieurs systèmes d’exploitation à déployer.

Ce module PowerShell a pour objectifs de vous simplifier la sauvegarde et la gestion des pilotes utilisés dans votre parc, mais également l’importation dans les produits MDT et SCCM.

Lien de téléchargement : ICI.

N’hésitez pas à m’envoyer vos remarques et commentaires (Bugs ou fonctionnalités à ajouter) et de noter ce module 😉

Principe de fonctionnement
L’utilisation de ce module est relativement simple est fonctionne en deux étapes. Dans un premier temps, les pilotes sont sauvegardés depuis les postes de travail vers un emplacement centralisé (que nous nommerons un « repository »), puis lorsque ce repository est suffisamment peuplé, il ne nous reste plus qu’à nous y connecter puis lancer l’importation dans MDT ou SCCM.

L’emplacement centralisé (le repository) est un dossier ou un dossier partagé structuré de la façon suivante :

  • Control (dossier contenant un fichier xml référençant tous les pilotes stockés dans le repository)
  • Drivers (dossier contenant tous les pilotes sauvegardés)
    • x86
      • Windows 7
        • Dell Inc. – Latitude E6420
        • Hewlett-Packard – HP ProBook 6570b
      • Windows 8
        • Microsoft Corporation – Virtual Machine
        • Hewlett-Packard – HP ProBook 6570b
    • x64

Chaque dossier référencé par le couple fabriquant / modèle contient la sauvegarde des pilotes. Par exemple, l’image suivante présente le contenu du dossier x64\Windows 8\Hewlett-Packard – HP ProBook 6570b.

Administrateur _ Windows PowerShell000010

Lorsque vous réalisez la sauvegarde des pilotes d’un poste de travail, vous n’avez pas à vous soucier de cette structure de dossier, seul le chemin d’accès au repository est nécessaire. De même la cmdlet de sauvegarde des pilotes vous permet de sélectionner le mode de sauvegarde : Append ou Replace :

  • Replace : Ce mode écrase toute sauvegarde existante. Lorsque vous sélectionnez cet option, si une sauvegarde correspondant au modèle et à l’OS existe déjà dans le repository, elle sera remplacée par l’opération courante
  • Append : Ce mode ajoute à une sauvegarde existante les pilotes qui ne sont pas déjà présents ou remplace un pilote du repository si celui-ci est plus ancien

Le mode Append peut être particulièrement utile lorsque vous lancez la sauvegarde des pilotes à partir de plusieurs PCs du même modèle. Dans ce cas seuls les pilotes les plus récents de ces modèles seront sauvegardés.

La galerie suivante vous présente la procédure de sauvegarde des pilotes en mode « Replace » :

Ce diaporama nécessite JavaScript.

Lorsque les pilotes de votre parc sont sauvegardés dans le Repository, ils peuvent être importés dans l’outil MDT ou SCCM. Ici aussi, ces sont des cmdlets livrées dans ce module qui sont utilisées. Cependant elles nécessitent la présence de l’outil MDT ou de la console SCCM pour fonctionner. Leur exécution est donc plus efficace depuis le serveur ou bien une machine d’administrateur MDT/SCCM.

L’import consiste en l’exécution d’une cmdlet (import-DriversToMDT ou import-DriversToSCCM). Cette commande affichera une liste des pilotes qu’il vous sera possible d’intégrer comme le montre l’exemple suivant. Notez que vous pouvez importer les pilotes de nombreux modèles en une seule opération 🙂

La galerie suivante vous présente la procédure d’import dans SCCM :

Ce diaporama nécessite JavaScript.

Dans le cas de MDT, les pilotes sont importés et classés dans la même arborescence que dans le Repository de sorte que vous puissiez réaliser une installation dynamique des pilotes lors de l’exécution de vos séquences de tâches. L’image suivante vous présente le résultat de l’importation dans MDT.

000013

Dans le cas de SCCM, chaque pilote importé sera associé aux catégories architecture, OS, Manufacturer et model. Un pack de pilote sera également créé. Il ne vous restera plus qu’à l’envoyer sur vos points de distribution puis les lier à vos séquences ce tâches.

Description du module PowerShell
Ce module inclut les cmdlets suivantes :

  • Get-DriverList [-DriverFamily] <string> {All | Tiers} : Obtient la liste des pilotes utilisés sur le poste de travail. Cette liste peut être filtrée en se basant sur les propriétés des pilotes tels que leur classe, éditeurs, version, etc. Vous pouvez obtenir la liste complète des pilotes ou seulement les pilotes non-Microsoft.
  • Get-DeviceIDs [-DriverFamily] <string> {All | Tiers} : Obtient la liste des ID plug’n’Play et des ID Compatibles pour chaque pilote installé sur le poste de travail. Comment pour la cmldlet Get-DriverList vous pouvez obtenir la liste complète ou seulement les pilotes non-Microsoft
  • Backup-Drivers [-DriverList] <psobject[]> [-Repository] <string> [-Action] <string> {Replace | Append} : Sauvegarde les pilotes utilisés par le poste de travail et récupérés par la commande Get-DriverList. Le premier argument -Repository correspond à l’emplacement de sauvegarde des pilotes. Le second argument-Action vous permet de choisir si cette sauvegarde remplacera une sauvegarde existante dans le repository si elle est déjà présente (Replace) ou si seuls les pilotes plus récents ou non existants dans le repository seront sauvegardés
  • Import-DriversToMDT [-Repository] <string> [-MDTDeploymentShare] <string> : Importe des pilotes précédemment sauvegardés dans le repository dans MDT. Une arcorescence est automatiquement créé dans MDT reflétant l’arborescence dans le repository
  • Import-DriversToSCCM [-Repository] <string> : Importe des pilotes précédemment sauvegardés dans le repository dans SCCM. Chaque pilote créé dans SCCM est associé à plusieurs catégories liées à l’architecture, le système d’exploitation, le fabriquant et le modèle. Un pack de pilote est également crée pour chaque pilote.

Exemples d’utilisation :
Obtenir la liste des pilotes non-Microsoft utilisés sur le poste de travail :

  • Get-DriverList -DriverFamily Tiers | Format-Table

Obtenir la liste des pilotes non-Microsoft non-Apple utilisés sur le poste de travail :

  • Get-DriverList -DriverFamily Tiers | Where-Object {$_.ProviderName -notlike "*Apple*"} | Format-Table

Sauvegarde des pilotes non-Microsoft, non-Apple en mode ajout :

  • $drivers = Get-DriverList -DriverFamily Tiers | Where-Object {$_.ProviderName -notlike "*Apple*"}
  • $drivers | Backup-Drivers -Repository "c:\temp\repository" -Action Append

Importer des pilotes dans MDT :

  • import-DriversToMDT -Repository "c:\temp\repository" -MDTDeploymentShare "\\MDTserver\Deploymentshare$"

Importer des pilotes dans SCCM :

  • Import-DriversToSCCM -repository "C:\temp\Repository"

Laisser un commentaire

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