Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

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 :

FormatCe que c'estInstallation silencieuse
MSIPaquet Windows Installer, standardisémsiexec /i paquet.msi /qn : les mêmes options pour tous les MSI
EXEProgramme d'installation, construit avec un outil parmi d'autresDépend de l'outil : /S (NSIS), /VERYSILENT /NORESTART (Inno Setup), /quiet (WiX), /s (InstallShield)… Lire la documentation de l'éditeur
MSIXFormat moderne de Microsoft, en conteneurAdd-AppxPackage, ou déploiement par Intune et le Store

Les options de msiexec à connaître :

bat
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.

OptionEffet
/iInstaller
/xDésinstaller (avec le fichier MSI ou le code produit)
/qnAucune interface ; /qb affiche une simple barre de progression
/norestartNe redémarre pas, même si l'installation le demande
/l*v fichierJournal complet, indispensable pour comprendre un échec
PROPRIETE=valeurPasse un paramètre au MSI (adresse d'un serveur, numéro de licence…)
TRANSFORMS=fichier.mstApplique 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 :

powershell
# 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 :

powershell
# 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 :

powershell
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 :

TypeCe que c'estRemarques
Application du Microsoft Store (nouveau)Une application du catalogue du Store, installée par Intune avec wingetMises à jour automatiques par le Store ; seulement la source du Store, pas le dépôt communautaire de winget
Application Win32N'importe quel installateur (EXE, MSI, script), empaqueté au format .intunewinLe 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 quelSimple, mais moins de contrôle que Win32
Applications Microsoft 365La suite Office, avec ses canaux de mise à jourAssistant dédié

Pour empaqueter une application Win32, Microsoft fournit l'outil Microsoft Win32 Content Prep Tool, IntuneWinAppUtil.exe :

bat
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

SituationOutil adapté
Un MSI pour un service, dans un domaine, sans outil de gestionGPO d'installation de logiciel
Des logiciels courants à installer après l'image, et à mettre à jourScript winget (ou Chocolatey), lancé au déploiement puis planifié
Un parc déployé avec FOGSnapins FOG pour les logiciels propres à un groupe
Un parc inventorié par GLPI, besoin de suiviTâches de déploiement de l'agent GLPI
Des postes gérés par IntuneApplications Store (nouveau) et Win32
Une grande organisation, besoin de rapports et de fenêtres de maintenanceConfiguration 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 :

  1. 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).
  2. 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.
  3. L'injection. Dans une image hors ligne (montée avec DISM) ou sur un poste en fonctionnement :
bat
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.

  1. Écris la commande d'installation silencieuse, sans redémarrage, avec un journal dans C:\Sorbier\Logs\messagerie.log.
  2. Sur un poste, le code de retour est 3010 ; sur un autre, 1603. Que fais-tu dans chaque cas ?
  3. 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
  1. msiexec /i "\\srv-fichiers\Logiciels$\messagerie\messagerie-x64.msi" SERVERNAME=mail.sorbier.example /qn /norestart /l*v "C:\Sorbier\Logs\messagerie.log"
  2. 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…).
  3. Pas directement : une GPO d'installation ne transmet pas de propriétés en ligne de commande. Il faut créer une transformation .mst qui fixe SERVERNAME, 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.

  1. Installer Firefox, 7-Zip et LibreOffice sur les vingt nouveaux postes, et les garder à jour.
  2. 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.
  3. 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
  1. Un script winget lancé à la post-installation, puis une tâche planifiée winget upgrade --all (ou un outil de gestion des correctifs) : ce sont des logiciels courants du dépôt, qui changent souvent de version.
  2. Un snapin FOG associé au groupe « Entrepôt » : la commande installateur.exe /S s'exécute sous le compte système, juste après le déploiement, et FOG trace le résultat.
  3. 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
  1. Lancer Windows Update, y compris les mises à jour facultatives (rubrique des pilotes) : beaucoup de pilotes y sont.
  2. 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.
  3. 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-Driver dans 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é ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Postes Linux : preseed, autoinstall et cloud-initRevoir le sommaire du cours