
WinGet, c’est le nom du gestionnaire de paquets en ligne de commande disponible sur Windows depuis 2021. Comment l’utiliser pour installer, désinstaller, mettre à jour et gérer les applications sur une machine Windows ? C’est ce que nous verrons dans ce tutoriel.
Disponible en version stable depuis mai 2021, WinGet (ou Windows Package Manager) a été développé par Microsoft afin de combler un manque historique sur le système d’exploitation Windows. En effet, avant l’ajout de WinGet, Windows ne disposait pas d’un gestionnaire de paquets intégré au système, bien qu’il existait des solutions tierces comme Chocolatey et Scoop. A contrario, il en existe pour les distributions Linux depuis plusieurs dizaines d’années, comme la commande apt (utilisée sur Debian/Ubuntu) et dnf (sur Fedora).
Note : WinGet est disponible sur Windows 10, Windows 11 et même Windows Server.
Prise en main de WinGet
Le premier intérêt de WinGet réside dans sa capacité à rechercher et à installer des logiciels sans avoir à ouvrir un navigateur web, chercher un site officiel, télécharger un exécutable .exe ou .msi, puis cliquer sur “Suivant” à de multiples reprises. Une commande suffit à installer une application à partir du moment où l’on connait l’identifiant du paquet.
Rechercher un paquet
Avant d’installer un logiciel, il est nécessaire de connaître son nom exact ou son identifiant au sein du dépôt public. La commande search permet d’interroger les sources disponibles, à savoir le dépôt WinGet et le Microsoft Store, par défaut.
Voici comment rechercher tous les paquets dont le nom correspond à firefox.
winget search firefox
Cette commande retourne un tableau listant le nom de l’application, son identifiant unique (ID), la version disponible et la source du dépôt. Comme le montre l’image ci-dessous, il y a des dizaines de résultats : Firefox (stable), Firefox (Dev), Firefox ESR, etc… Et à chaque fois, dans plusieurs langues.
Ici, nous allons installer la version ESR en langue française. L’identifiant sera : Mozilla.Firefox.ESR.fr.
Installer une application via son ID
Il est fortement recommandé d’utiliser l’identifiant unique plutôt que le nom simple de l’application pour éviter toute ambiguïté ou l’installation par erreur d’un logiciel homonyme. Une fois l’ID repéré dans l’étape précédente, l’installation se lance ainsi :
winget install –id Mozilla.Firefox.ESR.fr
Vous pouvez retirer le paramètre –id afin de spécifier directement le nom du paquet, cela fonctionnera. Ici, j’ai mis la commande complète pour mettre en évidence la syntaxe avec l’option adéquate.
Vérifier la présence d’un paquet
Pour s’assurer que l’application est correctement enregistrée par le système ou pour auditer les logiciels présents sur la machine, la commande list associée à un mot-clé est idéale :
winget list firefox
Si le logiciel apparaît dans la liste, cela confirme que le processus d’installation s’est correctement finalisé.
Désinstaller une application proprement
WinGet offre la possibilité de supprimer un logiciel via la console. En théorie, l’utilisation de commutateurs silencieux permet une suppression sans intervention humaine :
winget uninstall Mozilla.Firefox.ESR.fr -h –disable-interactivity
Bien que les paramètres -h (silent) et –disable-interactivity visent à masquer l’interface graphique de désinstallation et à l’automatiser de façon silencieuse, Firefox fait partie des exceptions. En effet, une validation par clic est requise. Une alternative consisterait à utiliser plutôt un script de désinstallation basé sur PowerShell, si cela est gênant.
Avec d’autres applications, la syntaxe mentionnée ci-dessus permet de désinstaller le paquet sans demander la moindre interaction.
Installer une version spécifique
Dans certains contextes, vous pourriez avoir besoin de figer une version logicielle précise (pour des raisons de compatibilité, par exemple). Pour cela, affichez d’abord l’historique des versions disponibles dans le dépôt à l’aide de l’option -q (ou –query) :
winget show -q Mozilla.Firefox.ESR.fr –versions
Comme le montre l’image ci-dessous, de nombreuses versions sont disponibles pour ce paquet. Vous êtes libre de piocher dans cet historique de version à votre guise, selon vos besoins.
Une fois la version identifiée, vous pouvez forcer son installation en spécifiant le numéro de version souhaité avec -v :
winget install Mozilla.Firefox.ESR.fr -v 140.11.0 -h -e
Cet exemple contient aussi deux autres options : -e (pour –exact) pour rechercher le paquet dont le nom est strictement identique à celui précisé dans la commande et, -h (pour –silent) pour effectuer une installation silencieuse.
Les contextes d’installation (Scope)
WinGet est capable d’installer des logiciels selon deux périmètres distincts :
Le contexte machine : accessible à tous les utilisateurs du poste, nécessite des privilèges élevés,
Le contexte utilisateur : limité à la session Windows en cours, sans droits d’administration requis.
L’option –scope permet d’indiquer explicitement ce choix. Voici un exemple :
winget install 7zip.7zip –scope machine
Spécifier la source du dépôt
Par défaut, WinGet interroge plusieurs sources de données, incluant son propre dépôt communautaire validé par Microsoft ainsi que le Microsoft Store. Si un logiciel est présent sur plusieurs plateformes et que vous souhaitez privilégier une source précise, utilisez le commutateur -s ou –source :
winget install DeepL.DeepL –source winget
Installation ans surveillance (Unattended)
Pour intégrer l’installation d’applications comme Visual Studio Code dans des processus de déploiement automatisés (via MDT, SCCM, ou des scripts d’ouverture de session), il est parfois nécessaire d’ajouter des options supplémentaires. Autrement dit, l’option -h ne suffira pas toujours à contourner l’acceptation des licences d’utilisation (côté source et côté paquet).
La syntaxe suivante accepte tout à votre place et effectue l’installation silencieuse de VS Code avec WinGet :
winget install Microsoft.VisualStudioCode -h –accept-source-agreements –accept-package-agreements
Se préparer à une réinstallation avec WinGet
Lors d’un changement de poste de travail ou d’une réinstallation complète du système d’exploitation, l’inventaire et la réinstallation manuelle de chaque outil représentent une perte de temps notable. Et puis, il faut avouer que ce n’est pas une partie de plaisir… Pour vous faciliter la tâche, vous pouvez utiliser un outil comme Ninite, ou alors utiliser le mécanisme d’exportation et d’importation de configuration de WinGet pour cloner un environnement logiciel.
L’enchaînement des étapes pour migrer vos logiciels se structure de la manière suivante :
1. Vérifier la liste des applications installées
Exécutez la commande winget list afin de voir tous les logiciels installés sur la machine locale (précédemment nous l’avons utilisée avec un filtre). Ce sera aussi l’occasion de voir quels sont ceux disponibles dans les dépôts WinGet / Microsoft Store.
2. Exporter la configuration vers un fichier JSON
Générez un fichier de configuration contenant l’ensemble des identifiants des applications installées sur la machine locale. La commande ci-dessous sert à stocker ces informations dans un fichier JSON (C:/temp/winget.json) :
winget export -o C:/temp/winget.json
Ce fichier JSON peut être stocké sur une clé USB ou un espace de stockage cloud afin d’être mis de côté avant la réinstallation. Vous pouvez aussi le transférer sur une autre machine si vous souhaitez installer vos logiciels ailleurs.
Note : certains logiciels présents sur la machine ne seront pas ajoutés à l’export s’ils n’existent pas dans les sources.
3. Importer la configuration WinGet
Sur le nouveau système Windows fraîchement installé, ouvrez une console et injectez le fichier JSON pour lancer l’installation en cascade de toutes vos applications via WinGet :
winget import -i C:/temp/winget.json
WinGet va alors procéder à l’installation des paquets sur la machine locale. Il va installer toutes celles manquantes et mettre à jour celles déjà présentes, si cela est nécessaire.
Mettre à jour facilement les applications avec WinGet
WinGet simplifie la maintenance de Windows et la mise à jour des applications grâce à la commande winget upgrade.
Pour analyser votre système et lister uniquement les applications pour lesquelles une version plus récente est disponible, utilisez la syntaxe suivante :
winget list –upgrade-available –include-unknown
L’argument –include-unknown permet d’inclure dans l’analyse les logiciels dont la version actuelle n’est pas parfaitement identifiée par le système, maximisant ainsi les chances de détection.
Pour mettre à jour l’intégralité des applications éligibles en une seule fois, de façon totalement silencieuse et non interactive, saisissez cette commande globale :
winget upgrade –all –accept-package-agreements –include-unknown –disable-interactivity –accept-source-agreements –force
Le commutateur –force indique à WinGet de poursuivre le processus même si certaines vérifications mineures de signatures ou de versions affichent des alertes non bloquantes. Vous pourriez lancer uniquement la commande winget upgrade –all mais cela ne serait pas aussi automatique.
Si vous souhaitez exclure une application de ce processus de mise à jour, vous pouvez l’épingler. Voici un exemple avec 7-Zip :
winget pin add –id 7zip.7Zip
Found 7-Zip [7zip.7zip]
Pin added successfully
Ensuite, vous pouvez vérifier cette configuration :
winget pin list
Name Id Version Source Pin type
—————————————————
7-Zip 26.01 (x64) 7zip.7zip 26.01 winget Pinning
Astuce : si vous souhaitez valider le bon fonctionnement de cette commande dans un environnement de test ou de validation, vous pouvez installer volontairement des versions obsolètes de logiciels courants à l’aide des commandes ci-dessous, puis exécuter la commande de mise à jour globale pour observer le comportement de WinGet :
winget install Mozilla.Firefox.ESR.fr -v 140.10.0 -h -e
winget install 7zip.7zip -v 25.00 -h -e
Script d’installation WinGet
Pour standardiser la préparation d’un nouveau poste de travail au sein d’une entreprise ou simplement pour votre poste perso, la création d’un script de déploiement WinGet au format Batch (.bat) ou PowerShell représente une solution.
En enchaînant les commandes winget install, vous pouvez installer un ensemble d’applications très facilement. Une fois votre script prêt, pensez à l’exécuter avec les privilèges d’administrateur.
L’exemple ci-dessous sert à automatiser l’installation de 6 applications différentes.
winget install –id DeepL.DeepL -e -h –scope “machine”
winget install –id Telegram.TelegramDesktop -e -h –scope “machine”
winget install –id Notepad++.Notepad++ -e -h –scope “machine”
winget install –id Mozilla.Firefox.ESR.fr -e -h –scope “machine”
winget install –id Microsoft.VisualStudioCode -e -h –scope “machine”
winget install –id 7Zip.7Zip -e -h –scope “machine”
Libre à vous d’aller plus loin, que ce soit en Batch ou en PowerShell, pour automatiser l’installation d’applications tout en ajoutant des étapes supplémentaires. Avec un bon vieux script Batch, cela fonctionne bien.
@echo off
rem ————————————————————————-
rem Script de déploiement initial des applications de base via WinGet
rem ————————————————————————-
echo Installation de DeepL…
winget install –id DeepL.DeepL -e -h –scope “machine”
echo Installation de Telegram Desktop…
winget install –id Telegram.TelegramDesktop -e -h –scope “machine”
echo Installation de Notepad++…
winget install –id Notepad++.Notepad++ -e -h –scope “machine”
echo Installation de Mozilla Firefox ESR…
winget install –id Mozilla.Firefox.ESR.fr -e -h –scope “machine”
echo Installation de Microsoft Visual Studio Code…
winget install –id Microsoft.VisualStudioCode -e -h –scope “machine”
echo Installation de 7-Zip…
winget install –id 7Zip.7Zip -e -h –scope “machine”
echo Déploiement terminé avec succès !
pause
Conclusion
WinGet est un outil en ligne de commande à connaître puisqu’il offre des fonctionnalités intéressantes pour la gestion des applications sur Windows. Rien que pour la mise à jour des applications en masse, avec une seule commande, cela simplifie grandement la tâche.
Si vous préférez disposer d’une interface graphique, il existe des outils qui agissent comme une surcouche visuelle. C’est notamment le cas du projet open source UniGetUI (anciennement connu sous le nom de WingetUI), qui regroupe au sein d’une interface unifiée les catalogues de WinGet, Chocolatey et Scoop.
Par ailleurs, si vous souhaitez automatiser la mise à jour des applications sur votre PC, vous pouvez installer l’outil open source Winget-AutoUpdate. Une fois en place, il mettra à jour vos applications selon la fréquence définie par vos soins, et vous pouvez aussi déclarer des exclusions. L’alternative consiste à lancer un script de mise à jour via une tâche planifiée Windows.
Enfin, si vous souhaitez approfondir l’usage de WinGet et découvrir d’autres options, n’hésitez pas à interroger l’aide intégrée en saisissant la commande winget –help dans votre console. Pour aller encore plus loin, je vous invite à vous intéresser à WinGet DSC pour également configurer Windows.
FAQ – WinGet Windows
Qu’est-ce que WinGet ?
WinGet est le gestionnaire de paquets officiel développé par Microsoft pour Windows 10 et Windows 11. Il permet d’installer, mettre à jour et supprimer des logiciels en ligne de commande. Il utilise le dépôt WinGet et le Microsoft Store comme sources.
Comment vérifier si WinGet est déjà présent sur mon ordinateur ?
Ouvrez une invite de commandes ou une console PowerShell et tapez simplement winget. Si l’outil est présent, il affichera l’aide générale.
Quelle est la différence majeure entre WinGet et Chocolatey ?
Chocolatey est une solution tierce historique qui gère ses propres dépôts et scripts d’installation. Il n’est pas installé par défaut sur Windows. De son côté, WinGet est la solution native de Microsoft, s’appuyant principalement sur des fichiers de configuration (manifestes YAML) pour télécharger directement les exécutables depuis les serveurs des éditeurs (comme un système de pointeurs).
Doit-on obligatoirement posséder des droits Administrateur pour utiliser WinGet ?
Non. Si vous installez une application avec le paramètre –scope user, WinGet placera les fichiers dans le profil de l’utilisateur actuel (par exemple dans AppData), éliminant le besoin de privilèges élevés. Le périmètre –scope machine requiert en revanche des droits d’administrateur.
Est-il possible d’installer des applications issues du Microsoft Store avec cet outil ?
Oui, le Microsoft Store fait partie des sources configurées par défaut dans WinGet. Vous pouvez cibler cette source lors d’une recherche ou d’une installation en utilisant l’argument –source msstore.
Comment désinstaller un logiciel qui n’a pas été installé initialement avec WinGet ?
WinGet est capable de lister et de désinstaller la grande majorité des logiciels classiques installés sur la machine, même s’ils ont été configurés via un installateur traditionnel. Utilisez winget list pour trouver son nom ou son ID, puis lancez winget uninstall.
Comment empêcher WinGet de mettre à jour une application spécifique lors d’un “upgrade –all” ?
Si vous devez figer une version logicielle spécifique pour des raisons de stabilité, vous pouvez configurer WinGet avec la commande winget pin add –id . L’application sera alors ignorée lors des processus de mise à jour globale. Vérifiez votre configuration avec winget pin list.
Comment obtenir de l’aide sur une commande spécifique de WinGet ?
Pour comprendre la syntaxe et découvrir l’intégralité des options d’une commande en particulier, ajoutez simplement le paramètre d’aide à la suite de celle-ci, comme par exemple : winget install –help.
Comment vider manuellement le cache de téléchargement pour libérer de l’espace disque ?
Vous pouvez nettoyer les fichiers d’installation résiduels en utilisant l’utilitaire de nettoyage de disque de Windows ou en exécutant la commande dédiée de l’outil : winget clean.
Comment inspecter un paquet avant de l’installer ?
En exécutant la commande winget show , vous pouvez afficher la fiche descriptive du paquet. Cela indique la version, l’éditeur, la description, la page du projet, la licence, etc… C’est assez complet.
Comment nettoyer et réinitialiser les sources de WinGet ?
Si WinGet devient lent ou ne trouve plus de mises à jour, il est possible que la base de données locale soit corrompue. Réinitialisez tout ce qui est associé aux sources, via cette commande : winget source reset –force.
Cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Mon obsession depuis près de 15 ans ? Rendre l’administration système et la cybersécurité accessibles, que vous soyez junior ou confirmé. Plus qu’un métier, l’IT est pour moi une véritable passion. J’accompagne au quotidien les sysadmins et les professionnels de l’IT dans leur montée en compétences et leur veille technique.
