Chapitre 716 minIntermédiaire
Déployer des logiciels, des pilotes et des mises à jour
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- installer un logiciel en silencieux avec msiexec et les options d'un EXE ;
- automatiser les installations avec winget, et connaître ses limites ;
- choisir entre GPO, winget, Chocolatey, FOG et Intune pour une situation ;
- intégrer les pilotes et les mises à jour au déploiement.
4 exercices corrigés
Déployer un logiciel, c'est l'installer sur de nombreux postes sans que personne ne clique sur « Suivant » : en installation silencieuse, lancée par une stratégie de groupe, un script, un gestionnaire de paquets comme winget ou un outil de gestion comme Intune. Ce chapitre montre comment installer un logiciel sans intervention, compare les outils de déploiement de logiciels, puis traite les pilotes et les mises à jour, qui complètent l'image sur chaque poste.
L'installation silencieuse
Tout déploiement de logiciel repose sur un installateur capable de fonctionner sans interface et sans question. Avant d'automatiser quoi que ce soit, il faut donc savoir quel type d'installateur on a entre les mains :
| Format | Ce que c'est | Installation silencieuse |
|---|---|---|
| MSI | Paquet Windows Installer, standardisé | msiexec /i paquet.msi /qn : les mêmes options pour tous les MSI |
| EXE | Programme d'installation, construit avec un outil parmi d'autres | Dépend de l'outil : /S (NSIS), /VERYSILENT /NORESTART (Inno Setup), /quiet (WiX), /s (InstallShield)… Lire la documentation de l'éditeur |
| MSIX | Format moderne de Microsoft, en conteneur | Add-AppxPackage, ou déploiement par Intune et le Store |
Les options de msiexec à connaître :
rem Installation silencieuse, sans redémarrage, avec un journal détaillé
msiexec /i "\\srv-fichiers\Logiciels$\7zip\7zip-x64.msi" /qn /norestart /l*v "C:\Sorbier\Logs\7zip.log"
rem Désinstallation silencieuse, par le code produit du MSI (un GUID entre accolades)
msiexec /x {CODE-PRODUIT} /qn /norestart
Le code produit d'un logiciel installé par MSI est le nom de sa sous-clé dans HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall : un identifiant de la forme {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}, propre à chaque version du paquet.
| Option | Effet |
|---|---|
/i | Installer |
/x | Désinstaller (avec le fichier MSI ou le code produit) |
/qn | Aucune interface ; /qb affiche une simple barre de progression |
/norestart | Ne redémarre pas, même si l'installation le demande |
/l*v fichier | Journal complet, indispensable pour comprendre un échec |
PROPRIETE=valeur | Passe un paramètre au MSI (adresse d'un serveur, numéro de licence…) |
TRANSFORMS=fichier.mst | Applique une transformation, un fichier qui modifie les réglages du MSI |
Le code de retour dit si l'installation a réussi. Ceux qu'il faut connaître : 0 (succès), 3010 (succès, mais un redémarrage est nécessaire), 1603 (erreur fatale : lire le journal), 1618 (une autre installation est déjà en cours), 1619 (paquet introuvable ou illisible).
Par stratégie de groupe
Les GPO savent installer des paquets MSI : Configuration ordinateur > Stratégies > Paramètres du logiciel > Installation de logiciel, puis Nouveau > Package, en donnant le chemin réseau du fichier (\\srv-fichiers\Logiciels$\..., lisible par les Ordinateurs du domaine). En mode Attribué, le logiciel s'installe au démarrage suivant du poste. La marche à suivre complète est dans le cours Windows Server.
C'est gratuit et déjà en place dans tout domaine, mais limité :
- MSI seulement, sans possibilité de passer des propriétés en ligne de commande : il faut une transformation
.mst, préparée avec un éditeur de MSI ; - aucun suivi : la console ne dit pas sur quels postes l'installation a réussi ;
- l'installation se fait au démarrage, et peut échouer si le réseau n'est pas encore prêt. Le réglage Toujours attendre le réseau lors du démarrage de l'ordinateur et de l'ouverture de session (Configuration ordinateur > Stratégies > Modèles d'administration > Système > Ouverture de session) fiabilise le mécanisme ;
- les mises à jour se gèrent en ajoutant un nouveau paquet qui met à niveau l'ancien, ce qui devient vite confus.
Chez Sorbier, une GPO liée à l'OU des postes de la comptabilité installe le logiciel de comptabilité, fourni en MSI par l'éditeur. C'est le cas idéal : un MSI, peu de postes, des mises à jour rares.
Avec winget
winget (Gestionnaire de package Windows, Windows Package Manager) est le gestionnaire de paquets de Microsoft, livré avec Windows 11 dans l'application Programme d'installation d'application (App Installer). Il installe un logiciel à partir de son identifiant, en téléchargeant l'installateur officiel de l'éditeur depuis un dépôt de manifestes :
# Chercher un logiciel et lire sa fiche
winget search vlc
winget show --id VideoLAN.VLC
# Installer en silencieux, pour tous les utilisateurs du poste, en acceptant les licences
winget install --id VideoLAN.VLC --exact --silent --scope machine --accept-package-agreements --accept-source-agreements
# Lister ce qui est installé, et ce qui peut être mis à jour
winget list
winget upgrade
# Tout mettre à jour
winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
# Exporter la liste des logiciels d'un poste de référence, puis l'installer sur un autre
winget export --output C:\Temp\compta.json
winget import --import-file C:\Temp\compta.json --accept-package-agreements --accept-source-agreements
Quelques identifiants courants : Mozilla.Firefox, Google.Chrome, 7zip.7zip, Notepad++.Notepad++, VideoLAN.VLC, TheDocumentFoundation.LibreOffice. L'option --exact évite qu'une recherche approximative installe un autre logiciel au nom proche.
Voici le script de post-installation des postes de Sorbier, lancé après le déploiement de l'image. Il installe les logiciels de la liste et écrit un journal :
# installer-logiciels.ps1 : installe les logiciels communs avec winget et journalise
$journal = "C:\Sorbier\Logs\logiciels-$(Get-Date -Format 'yyyyMMdd-HHmm').log"
Start-Transcript -Path $journal
$paquets = 'Mozilla.Firefox', '7zip.7zip', 'TheDocumentFoundation.LibreOffice', 'VideoLAN.VLC'
foreach ($id in $paquets) {
winget install --id $id --exact --silent --scope machine `
--accept-package-agreements --accept-source-agreements
if ($LASTEXITCODE -eq 0) {
Write-Output "OK $id"
} else {
Write-Warning "ECHEC $id (code $LASTEXITCODE)"
}
}
Stop-Transcript
Un code de retour différent de 0 n'est pas toujours une panne : winget renvoie aussi un code particulier quand le logiciel est déjà installé et à jour. La documentation de winget donne la liste des codes. Le cours Scripts PowerShell et Bash détaille l'écriture de ce genre de script.
Avec Chocolatey
Chocolatey est un gestionnaire de paquets plus ancien que winget, très répandu chez les administrateurs Windows. Ses paquets embarquent ou téléchargent l'installateur, et des scripts PowerShell gèrent les options silencieuses :
choco install firefox 7zip libreoffice-fresh -y
choco upgrade all -y
choco list
Il s'installe par une commande PowerShell donnée sur son site officiel. La version libre suffit pour un usage simple ; les éditions commerciales ajoutent une console et des fonctions d'entreprise. Comme pour winget, une entreprise sérieuse n'utilise pas directement le dépôt communautaire en production : elle internalise les paquets dans un dépôt interne, après validation.
Avec un outil de gestion
Au-delà de quelques postes, on veut savoir où un logiciel est installé, quand, et si l'installation a réussi. C'est le rôle des outils de gestion :
- Les snapins de FOG : un MSI, un EXE ou un script téléversé sur le serveur FOG et associé à un poste ou à un groupe ; le client FOG l'exécute sous le compte système et remonte le résultat (chapitre 5).
- GLPI et son agent : avec l'extension d'inventaire et de déploiement, l'agent GLPI peut exécuter des tâches de déploiement de paquets sur les postes qu'il inventorie (cours GLPI et gestion de parc).
- Microsoft Intune, pour les postes qu'il gère (voir ci-dessous).
- Microsoft Configuration Manager et des outils commerciaux de gestion des correctifs, dans les grandes organisations.
Les applications dans Intune
Intune déploie plusieurs types d'applications Windows :
| Type | Ce que c'est | Remarques |
|---|---|---|
| Application du Microsoft Store (nouveau) | Une application du catalogue du Store, installée par Intune avec winget | Mises à jour automatiques par le Store ; seulement la source du Store, pas le dépôt communautaire de winget |
| Application Win32 | N'importe quel installateur (EXE, MSI, script), empaqueté au format .intunewin | Le type le plus souple : commande d'installation et de désinstallation, règle de détection, prérequis, dépendances, remplacement d'une ancienne version |
| Application métier (LOB) | Un MSI ou un MSIX téléversé tel quel | Simple, mais moins de contrôle que Win32 |
| Applications Microsoft 365 | La suite Office, avec ses canaux de mise à jour | Assistant dédié |
Pour empaqueter une application Win32, Microsoft fournit l'outil Microsoft Win32 Content Prep Tool, IntuneWinAppUtil.exe :
rem -c : dossier source ; -s : fichier d'installation ; -o : dossier de sortie du .intunewin
IntuneWinAppUtil.exe -c C:\Paquets\Compta -s setup.exe -o C:\Paquets\Sortie
Chaque application est ensuite affectée à des groupes : Obligatoire (installée d'office), Disponible pour les appareils inscrits (proposée dans le Portail d'entreprise, l'utilisateur l'installe s'il veut), ou Désinstaller. La règle de détection (un code produit MSI, un fichier, une clé de registre ou un script) dit à Intune comment vérifier que l'application est bien installée : sans règle correcte, Intune croit l'installation ratée et la relance indéfiniment.
Choisir l'outil de déploiement des logiciels
| Situation | Outil adapté |
|---|---|
| Un MSI pour un service, dans un domaine, sans outil de gestion | GPO d'installation de logiciel |
| Des logiciels courants à installer après l'image, et à mettre à jour | Script winget (ou Chocolatey), lancé au déploiement puis planifié |
| Un parc déployé avec FOG | Snapins FOG pour les logiciels propres à un groupe |
| Un parc inventorié par GLPI, besoin de suivi | Tâches de déploiement de l'agent GLPI |
| Des postes gérés par Intune | Applications Store (nouveau) et Win32 |
| Une grande organisation, besoin de rapports et de fenêtres de maintenance | Configuration Manager ou outil de gestion des correctifs |
Les pilotes
Un master construit dans une VM ne contient pas les pilotes des postes réels. Trois façons de les apporter :
- Windows Update. Windows 11 récupère seul la plupart des pilotes au premier démarrage. Suffisant pour beaucoup de modèles grand public, moins fiable pour les pilotes spécifiques (puces de sécurité, stations d'accueil, touches de fonction).
- Les packs de pilotes des fabricants. Dell, HP et Lenovo publient, pour chaque modèle professionnel, un pack de pilotes pour le déploiement (une archive de fichiers
.inf). On les ajoute pendant le déploiement : FOG peut, par un script lancé après la restauration de l'image, copier les pilotes du modèle détecté sur le disque ; Windows les installe pendant la spécialisation. - L'injection. Dans une image hors ligne (montée avec DISM) ou sur un poste en fonctionnement :
rem Ajouter tous les pilotes d'un dossier à une image montée (ou appliquée) en W:
dism /Image:W:\ /Add-Driver /Driver:D:\Pilotes\Latitude-5550 /Recurse
rem Ajouter et installer les pilotes d'un dossier sur le poste en fonctionnement
pnputil /add-driver D:\Pilotes\Latitude-5550\*.inf /subdirs /install
Pense aussi au micrologiciel (UEFI et contrôleurs) : les fabricants fournissent des outils qui le mettent à jour en même temps que les pilotes. Un poste neuf est souvent livré avec un UEFI déjà dépassé.
Les mises à jour
Le master contient les mises à jour du mois de sa capture. Le poste déployé doit ensuite suivre le rythme :
- Windows : une mise à jour cumulative chaque mois (le deuxième mardi), et une mise à jour de fonctionnalités par an. Dans un domaine, elles se pilotent par GPO (stratégies Windows Update) ; WSUS est déprécié depuis 2024 (toujours présent dans Windows Server 2025, mais sans nouveauté), voir le cours Windows Server. Avec Intune, on utilise des anneaux de mises à jour ou Windows Autopatch.
- Les logiciels : la mise à jour des logiciels tiers est souvent oubliée, alors que les navigateurs, les lecteurs PDF et les outils de compression sont des cibles fréquentes. Une tâche planifiée qui lance
winget upgrade --all, les mises à jour automatiques des éditeurs, ou un outil de gestion des correctifs, selon la taille du parc.
Exercices
Exercice 1 sur 4 Une installation silencieuse Réussi À revoir
Moussa doit déployer un client de messagerie fourni en messagerie-x64.msi, avec l'adresse du serveur mail.sorbier.example passée dans la propriété SERVERNAME.
- Écris la commande d'installation silencieuse, sans redémarrage, avec un journal dans
C:\Sorbier\Logs\messagerie.log. - Sur un poste, le code de retour est
3010; sur un autre,1603. Que fais-tu dans chaque cas ? - Peut-il déployer ce paquet, avec sa propriété, par une GPO d'installation de logiciel ?
Voir la réponseMasquer la réponse de l'exercice 1
msiexec /i "\\srv-fichiers\Logiciels$\messagerie\messagerie-x64.msi" SERVERNAME=mail.sorbier.example /qn /norestart /l*v "C:\Sorbier\Logs\messagerie.log"3010: l'installation a réussi mais demande un redémarrage ; on le planifie (ou on le laisse au prochain arrêt de l'utilisateur).1603: erreur fatale ; on ouvre le journal et on cherche la ligne « Return value 3 », juste après laquelle se trouve la cause (droits, prérequis manquant, version déjà installée…).- Pas directement : une GPO d'installation ne transmet pas de propriétés en ligne de commande. Il faut créer une transformation
.mstqui fixeSERVERNAME, et l'ajouter dans l'onglet Modifications du paquet de la GPO. Sinon, passer par un script ou un outil de déploiement.
Tu avais trouvé ?
Exercice 2 sur 4 Le bon outil Réussi À revoir
Pour chaque besoin de Sorbier, propose l'outil le plus adapté et justifie.
- Installer Firefox, 7-Zip et LibreOffice sur les vingt nouveaux postes, et les garder à jour.
- Installer le logiciel de gestion des stocks (un EXE avec une option
/S) sur les postes du groupe FOG « Entrepôt » seulement, juste après leur déploiement. - Installer le logiciel de comptabilité (MSI) sur les cinq postes de l'OU Comptabilité, et sur tout nouveau poste qui y sera placé.
Voir la réponseMasquer la réponse de l'exercice 2
- Un script
wingetlancé à la post-installation, puis une tâche planifiéewinget upgrade --all(ou un outil de gestion des correctifs) : ce sont des logiciels courants du dépôt, qui changent souvent de version. - Un snapin FOG associé au groupe « Entrepôt » : la commande
installateur.exe /Ss'exécute sous le compte système, juste après le déploiement, et FOG trace le résultat. - Une GPO d'installation de logiciel en mode Attribué, liée à l'OU de la comptabilité : tout ordinateur placé dans l'OU reçoit le logiciel au démarrage suivant, sans autre action.
Tu avais trouvé ?
Exercice 3 sur 4 winget sous le compte système Réussi À revoir
Chloé a placé winget install --id 7zip.7zip --exact --silent dans un script de démarrage d'ordinateur, par GPO. Rien ne s'installe, et le journal du script indique « winget n'est pas reconnu en tant que nom d'applet de commande ». Explique et propose deux solutions.
Voir la réponseMasquer la réponse de l'exercice 3
Le script de démarrage s'exécute sous le compte système, avant toute ouverture de session. Or winget fait partie de l'application Programme d'installation d'application, enregistrée pour chaque utilisateur : l'alias winget n'existe pas dans le contexte système. Solutions : (1) appeler directement winget.exe par son chemin dans C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_<version>_x64__8wekyb3d8bbwe\ (le script doit retrouver le dossier, car le numéro de version change) ; (2) installer 7-Zip par son MSI (GPO d'installation ou msiexec /qn dans le script) ; (3) passer par un outil qui gère ce contexte (snapin FOG, application Win32 d'Intune avec un script adapté).
Tu avais trouvé ?
Exercice 4 sur 4 Pilotes manquants Réussi À revoir
Après le déploiement de l'image sur un portable neuf, le Gestionnaire de périphériques affiche deux « Périphérique inconnu » et le pavé tactile ne gère pas le défilement. Le poste a accès à Internet. Donne la démarche, de la plus simple à la plus robuste.
Voir la réponseMasquer la réponse de l'exercice 4
- Lancer Windows Update, y compris les mises à jour facultatives (rubrique des pilotes) : beaucoup de pilotes y sont.
- Si des périphériques restent inconnus : relever leur identifiant matériel (Propriétés > Détails > ID du matériel), télécharger le pack de pilotes du modèle chez le fabricant, et l'installer avec
pnputil /add-driver <dossier>\*.inf /subdirs /install. - Pour les déploiements suivants : intégrer ce pack au processus (script de FOG qui copie les pilotes du modèle, ou injection avec
dism /Add-Driverdans le dossier de pilotes de l'image), pour que le problème ne se reproduise pas sur les dix-neuf autres portables. Noter la manipulation dans la documentation du déploiement.
Tu avais trouvé ?