winget, le gestionnaire de paquets intégré à Windows
winget installe, met à jour et désinstalle des applications depuis une invite de commandes, sans site de téléchargement. Les commandes à connaître, les options utiles en script et les limites à garder en tête.
winget est l'outil en ligne de commande du Gestionnaire de package Windows (Windows Package Manager). Microsoft le décrit comme le moyen de découvrir, installer, mettre à niveau, supprimer et configurer des applications sur Windows 10, Windows 11 et Windows Server 2025. Pour un administrateur, il remplace la tournée des sites éditeurs par une commande que l'on peut rejouer sur chaque machine.
Où winget est disponible
winget n'a rien à installer séparément dans la plupart des cas : il est livré avec App Installer (programme d'installation d'application), un composant système que le Microsoft Store tient à jour sur les versions bureau, et que les mises à jour Windows tiennent à jour sur Windows Server 2025.
| Système | Situation documentée par Microsoft |
|---|---|
| Windows 11 | fourni avec App Installer |
| Windows 10 | versions modernes ; l'outil n'est pris en charge qu'à partir de la version 1809 (build 17763) |
| Windows Server 2025 | fourni avec l'Expérience de bureau uniquement ; absent de Windows Server 2022 et antérieur |
| Windows Sandbox | non inclus ; à installer avec le module PowerShell Microsoft.WinGet.Client |
Windows 10 lui-même n'est plus pris en charge depuis le 14 octobre 2025 : sur un poste encore en Windows 10, winget fonctionne, mais le système ne reçoit plus de correctifs.
Un détail surprend souvent : winget n'apparaît qu'après la première ouverture de session d'un utilisateur, parce que c'est à ce moment que le Store enregistre le composant. Si la commande n'est pas reconnue sur une machine neuve, Microsoft donne cette commande pour forcer l'enregistrement :
Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe
Vérifiez ensuite la version installée :
winget --version
Chercher, puis installer
Testez d'abord ces commandes sur une machine de lab, et prenez un instantané avant de modifier un serveur de production.
Le cycle classique tient en deux commandes : chercher le paquet, puis l'installer par son identifiant.
winget search git
winget install --id Git.Git -e --source winget
Pourquoi tant d'options sur la deuxième ligne ? Par défaut, winget fait une recherche par sous-chaîne, sans tenir compte de la casse, dans le nom, l'identifiant et l'alias. Une requête vague peut donc correspondre à plusieurs paquets, et winget vous demande alors de préciser. Microsoft recommande la combinaison suivante :
--idlimite la recherche à l'identifiant du paquet ;-e(--exact) exige une correspondance exacte, casse comprise ;--source wingetlève l'ambiguïté quand plusieurs sources sont configurées, par exemple le dépôt communautaire et le Microsoft Store (msstore).
Avant d'installer, winget show affiche les détails d'un paquet et le programme d'installation que winget retiendrait pour votre système.
Installer plusieurs logiciels d'un coup
On peut lister plusieurs identifiants séparés par des espaces ; winget les installe l'un après l'autre.
winget install Microsoft.PowerShell Git.Git
Pour une version précise, ajoutez --version. Pour viser l'installation par utilisateur ou par machine, --scope accepte l'étendue utilisateur ou ordinateur.
Mettre à jour avec winget upgrade
Sans argument, winget upgrade liste les applications pour lesquelles une version plus récente est disponible. C'est le premier réflexe avant une campagne de mises à jour.
winget upgrade
winget upgrade --id Microsoft.PowerToys
winget upgrade --all
--all (alias -r, --recurse) met à jour tous les paquets installés. Trois options élargissent le périmètre, à utiliser en connaissance de cause :
| Option | Effet selon Microsoft |
|---|---|
--include-unknown | met aussi à niveau les paquets dont la version actuelle ne peut pas être déterminée |
--include-pinned | met aussi à niveau les paquets épinglés par un repère non bloquant |
--uninstall-previous | désinstalle la version précédente pendant la mise à niveau |
Pour qu'un logiciel ne bouge pas, winget pin gère les épingles de paquets.
Les options utiles dans un script
En tâche planifiée ou dans un script de préparation de poste, il ne doit y avoir aucune question. Trois options s'en chargent :
winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
--silent(-h) lance le programme d'installation sans aucune invite ;--accept-package-agreementsaccepte le contrat de licence du paquet ;--accept-source-agreementsaccepte les conditions de la source elle-même, distinctes de celles du paquet.
Microsoft précise que l'acceptation des contrats ne vaut que pour la licence propre du paquet, pas pour des composants facultatifs proposés par l'installeur. Pour le reste de l'automatisation, le module PowerShell Microsoft.WinGet.Client, publié sur la PowerShell Gallery, expose winget sous forme de cmdlets.
Attention aux droits : lancé sans élévation, winget fait apparaître une demande d'élévation pour les applications qui en ont besoin ; lancé depuis une console administrateur, il n'en affiche aucune. N'installez dans ce cas que des paquets dont vous connaissez la provenance.
Reconstruire un poste : export et import
winget export écrit dans un fichier JSON la liste des applications installées que winget sait associer à une source ; winget import réinstalle cette liste ailleurs.
winget export -o C:\Temp\applis.json
winget import -i C:\Temp\applis.json --accept-package-agreements --accept-source-agreements
Le fichier se modifie à la main pour retirer ce qui ne doit pas suivre. --include-versions à l'export fige les versions ; à l'import, --ignore-versions prend au contraire la dernière version disponible et --ignore-unavailable ignore les paquets introuvables. Une application que winget ne sait pas rattacher à une source déclenche un avertissement au moment de l'export.
Désinstaller
winget uninstall --id Microsoft.PowerToys
Microsoft signale qu'une désinstallation peut afficher un contrat du Microsoft Store, à cause de la façon dont winget interroge les sources ; ajoutez --source winget pour l'éviter.
winget ou Chocolatey ?
Les deux gestionnaires coexistent sans conflit. winget est fourni par Microsoft avec le système et s'appuie sur le dépôt communautaire winget et sur le Microsoft Store. Chocolatey a son propre dépôt, ses paquets internes et ses options d'entreprise. La procédure et les commandes choco sont détaillées dans la page sur l'installation de Chocolatey sous Windows.
| Critère | winget | Chocolatey |
|---|---|---|
| Présence par défaut | oui, via App Installer | non, script ou MSI |
| Dépôts | communautaire winget, Microsoft Store, sources REST | dépôt communautaire, dépôts internes |
| Liste exportable | winget export / import | choco export, fichier packages.config |
Les outils d'administration Active Directory ne passent par aucun des deux : ce sont des fonctionnalités Windows, présentées avec les outils de dépannage Active Directory. Pour les tâches serveur courantes, la désactivation de SMBv1 sur Windows Server est un autre exemple d'opération entièrement scriptable. Le reste des tutoriels se trouve dans la rubrique Windows Server et PowerShell.
Questions fréquentes
Comment installer winget ?
Sur Windows 11, sur les versions modernes de Windows 10 et sur Windows Server 2025, winget est déjà livré avec App Installer. S'il n'est pas reconnu après la première connexion, la commande Add-AppxPackage -RegisterByFamilyName donnée par Microsoft force son enregistrement.
Comment mettre à jour tous les logiciels avec winget ?
Tapez winget upgrade pour voir la liste, puis winget upgrade --all. Ajoutez --silent et les deux options d'acceptation des contrats pour un usage sans surveillance.
Pourquoi winget me demande-t-il de préciser le paquet ?
Parce que la recherche par défaut porte sur une sous-chaîne du nom, de l'identifiant et de l'alias. Utilisez --id avec -e pour cibler un seul paquet, et --source winget si plusieurs sources le proposent.
winget fonctionne-t-il sur Windows Server ?
Sur Windows Server 2025 seulement, et avec l'Expérience de bureau : la documentation d'installation de PowerShell précise que winget n'est pas disponible sur Windows Server 2022 ou antérieur. Sur Server Core, prévoyez un autre canal.
Peut-on copier ses logiciels d'un PC à l'autre ?
Oui : winget export -o fichier.json sur le premier poste, puis winget import -i fichier.json sur le second. Seules les applications que winget associe à une source figurent dans le fichier.