
Contexte
Dans un environnement Windows Server 2022 avec Active Directory, il est fréquent de devoir déployer ou mettre à jour les pilotes sur l’ensemble des postes de travail. Utiliser pnputil via PowerShell, couplé à une stratégie de groupe (GPO), permet d’automatiser la distribution sans recourir à des solutions tierces.

Quand l’utiliser
- Déploiement de nouveaux pilotes après une mise à jour matérielle.
- Correction de bugs connus sur des drivers obsolètes.
- Standardisation du même package de pilotes sur tous les postes d’un même site.
🔹 Étapes
-
Préparer le package de pilotes
# Créez un partage SMB accessible depuis tous les ordinateurs New-Item -Path "C:\Drivers\Package" -ItemType Directory # Copiez les .inf/.cat/.sys dans le répertoire Copy-Item -Path "D:\SourceDrivers\*.inf" -Destination "C:\Drivers\Package" # Partage du dossier New-SmbShare -Name "DriverPkg" -Path "C:\Drivers\Package" -FullAccess "Domain Computers" -
Écrire le script de mise à jour
# File: Update-Drivers.ps1 $share = "\\%LOGONSERVER%\DriverPkg" $dest = "$env:ProgramData\Drivers\Temp" # Copie locale New-Item -Path $dest -ItemType Directory -Force Copy-Item -Path "$share\*.inf" -Destination $dest -Force # Installation silencieuse de chaque driver Get-ChildItem -Path $dest -Filter *.inf | ForEach-Object { pnputil.exe /add-driver $_.FullName /install /subdirs /quiet }Placez ce script dans
C:\Scripts\Update-Drivers.ps1sur le contrôleur de domaine (ou un partage de fichiers). -
Créer la GPO
# Ouvrez la console GPMC Import-Module GroupPolicy $gpoName = "Deploy-Drivers-Update" New-GPO -Name $gpoName -Comment "Installe les derniers drivers depuis le partage" # Lier la GPO à l’OU contenant les ordinateurs New-GPLink -Name $gpoName -Target "OU=Workstations,DC=contoso,DC=local" -
Configurer le script de démarrage via la GPO
# Chemin du script dans la GPO $gpo = Get-GPO -Name $gpoName Set-GPRegistryValue -Name $gpoName -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" -ValueName "EnableLUA" -Type DWord -Value 0 # Ajouter le script de démarrage $scriptPath = "C:\Scripts\Update-Drivers.ps1" Set-GPStartupScript -Name $gpoName -ScriptPath $scriptPath -Parameters ""Le script s’exécutera à chaque démarrage de l’ordinateur client.
-
Forcer la mise à jour de la politique
# Sur un poste client gpupdate /force # Vérifier que le script a été lancé Get-EventLog -LogName System -Source "Microsoft-Windows-GroupPolicy" -Newest 5
⚠️ Bonnes pratiques de sécurité
- Restreindre l’accès au partage
DriverPkgaux groupes Domain Computers uniquement. - Signer les scripts PowerShell avec un certificat d’entreprise et activer
ExecutionPolicy RemoteSigned. - Conserver les pilotes dans un répertoire en lecture‑seule et vérifier les signatures des fichiers avant installation.
- Auditer les installations via le journal d’événements
SetupouMicrosoft-Windows-DriverFrameworks-UserMode.
✅ Conclusion
En combinant PowerShell, un partage SMB sécurisé et une GPO de démarrage, vous disposez d’une méthode fiable pour pousser les mises à jour de pilotes sur l’ensemble de votre parc Windows. Cette approche minimise les interventions manuelles, assure la cohérence des versions et s’intègre parfaitement à votre processus de gestion AD.
