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èmeSituation documentée par Microsoft
Windows 11fourni avec App Installer
Windows 10versions modernes ; l'outil n'est pris en charge qu'à partir de la version 1809 (build 17763)
Windows Server 2025fourni avec l'Expérience de bureau uniquement ; absent de Windows Server 2022 et antérieur
Windows Sandboxnon 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 :

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 :

OptionEffet selon Microsoft
--include-unknownmet aussi à niveau les paquets dont la version actuelle ne peut pas être déterminée
--include-pinnedmet aussi à niveau les paquets épinglés par un repère non bloquant
--uninstall-previousdé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

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èrewingetChocolatey
Présence par défautoui, via App Installernon, script ou MSI
Dépôtscommunautaire winget, Microsoft Store, sources RESTdépôt communautaire, dépôts internes
Liste exportablewinget export / importchoco 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.