winget : comment installer plusieurs applications d’un coup sous Windows 10/11
CLI FTW !
Le 16 septembre 2021 à 06h32
6 min
Logiciel
Logiciel
Depuis quelques mois, Microsoft a finalisé le travail sur son gestionnaire de paquets winget qui est disponible en version 1.0 pour Windows 10 et sera nativement intégré à Windows 11. Un outil idéal pour installer simplement des applications, les mettre à jour et préparer une machine neuve.
Les adeptes de Linux le savent depuis longtemps : la ligne de commandes est un outil très efficace, plus efficace qu'une interface graphique pour certaines tâches. Pour installer VLC, il est en effet très simple de taper :
sudo apt install vlc
Bien plus que d'aller sur le site de VLC, chercher le bouton de téléchargement, récupérer le fichier, vérifier qu'il est conforme, l'installer puis faire le ménage. Pour automatiser de telles tâches, les OS mobiles et Windows proposent un « Store », qui a le plus souvent le défaut d'être assez peu ouvert, modèle économique des plateformes oblige.
Ce, alors que les gestionnaires de paquets des distributions Linux proposent des dépôts officiels tout en permettant à l'utilisateur d'ajouter des dépôts tiers auxquels il fait confiance pour accéder à d'autres outils s'il le souhaite. Ubuntu a même simplifié le processus à l'extrême avec ses Personal Package Archives (PPA).
Enfin un gestionnaire de paquets dans Windows !
Une approche que Microsoft a fini par adopter avec winget. L'éditeur a longtemps cherché à proposer un gestionnaire de paquets. Il en a d'ailleurs un pour PowerShell ou les modules NuGet destinés aux développeurs, mais n'avait jamais réussi à trouver une approche gagnante pour les applications grand public de son système.
Au point que des solutions tierces se sont développées, chez les particuliers comme les entreprises. Chocolatey en est l'exemple parfait, étant devenu le gestionnaire de paquets officieux de Windows. Mais désormais, il y a winget. Développé depuis l'année dernière il est disponible en version 1.0 depuis fin mai.
On peut donc l'utiliser de manière courante sous Windows 10, il sera partie intégrante de Windows 11. L'occasion pour nous de voir comment l'utiliser pour préparer un système neuf ou le mettre à jour.
winget : les commandes basiques
Tout n'a pas été simple pour winget, qui a connu des débuts difficile. L'outil ne permettait au départ que d'installer des applications et ses fonctionnalités étaient très limitées. Son ambitieuse feuille de route a largement été malmenée et le projet a presque pris plusieurs mois de retard sur les plans initiaux.
Au final, la version 0.4 a été renommée en 1.0 pour tenir le délai officiel. Les principales fonctionnalités étaient de toute façon intégrées, comme la mise à jour, l'import/export, les sources multiples, etc. L'outil continuera de se peaufiner avec le temps, même si aucune mise à jour n'a été diffusée depuis fin juin. On s'attend néanmoins à ce qu'une nouvelle mouture accompagne le lancement de Windows 11 le 5 octobre ou soit publiée peu après.
Pour rappel, winget est un gestionnaire de paquets permettant d'installer des applications référencées dans une base communautaire gérée depuis GitHub. Elle contient des manifestes détaillant le nom des applications, des liens de téléchargement, empreinte de vérification des fichiers, etc. Chacun peut participer.
Pour l'utiliser, il suffit de télécharger la dernière version en date, au format MSIX Bundle. La compatibilité est assurée à partir de la version 1809 (build 17763). Sous Windows 11, winget est présent dès la première mise à jour des applications du Microsoft Store. Lorsque c'est fait, ouvrez un terminal :
winget -v
La version devrait s'afficher. Vous pouvez ensuite mettre à jour les sources, chercher une application et l'installer :
winget source update
winget search vlc
winget install vlc
Installer plusieurs applications via winget : notre script
Malheureusement, il n'est pas possible d'effectuer la commande suivante :
winget install discord vlc
Installer deux applications via winget nécessite pour le moment deux commandes séparées. En attendant que cela change, nous avons développé un script PowerShell pour vous faciliter la vie :
curl.exe -LO https://gist.github.com/davlgd/29693f3d725e7834ad5e76a2f1cf922b/raw/45139c8fa623c6fd83a5e92d7aabe681cb300bba/WinGetMulti.ps1
.\WinGetMulti.ps1 zip vlc
Il doit être lancé via le terminal propre à PowerShell, qui est utilisé par défaut avec le nouveau Terminal de Microsoft. Il contient une variable $bootstrapArray
contenant une liste d'application à installer avec le flag --bootstrap
, que vous pouvez modifier selon vos besoins. Sinon précisez les applications en argument.
Par défaut, le système devrait afficher une erreur, le script téléchargé n'étant pas considéré comme de confiance. Pour changer cela, vous devez changer la stratégie d'exécution (avec les droits administrateur) :
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
L'import/export de winget
Autre possibilité : se reposer sur la mécanique d'import/export intégrée à winget. En effet, il est possible de créer un fichier JSON contenant la liste des applications installées sur votre système, puis de la réutiliser sur une autre machine pour y installer les mêmes applications. C'est plus contraignant et moins flexible, mais ça existe.
Pour exporter la liste des applications installées :
winget export -o liste-winget.json
Vous pouvez également préciser des versions :
winget export -o liste-winget.json --include-versions
Pour l'import, c'est également assez simple :
winget import -i liste-winget.json
Cette fois on peut ignorer les versions si elles sont précisées ou les paquets éventuellement indisponibles :
winget import -i liste-winget.json --ignore-versions
winget import -i liste-winget.json --ignore-unavailable
Notez que la composition de ce fichier est assez simple, il peut donc être modifié manuellement. Il suffit simplement de connaître le nom exact des paquets à ajouter (colonne ID dans winget search
) :
{
"$schema" : "https://aka.ms/winget-packages.schema.2.0.json",
"CreationDate" : "2021-05-05T13:37:42.000 - 00:00",
"Sources" :
[
{
"Packages" :
[
{ "PackageIdentifier" : "Balena.Etcher" },
{ "PackageIdentifier" : "GIMP.GIMP" },
{ "PackageIdentifier" : "GnuPG.GnuPG" },
{ "PackageIdentifier" : "Mozilla.Firefox" },
{ "PackageIdentifier" : "Mozilla.Thunderbird" },
{ "PackageIdentifier" : "VideoLAN.VLC" },
{ "PackageIdentifier" : "XnSoft.XnViewClassic" },
{ "PackageIdentifier" : "WinSCP.WinSCP" },
],
"SourceDetails" :
{
"Argument" : "https://winget.azureedge.net/cache",
"Identifier" : "Microsoft.Winget.Source_8wekyb3d8bbwe",
"Name" : "winget",
"Type" : "Microsoft.PreIndexed.Package"
}
}
],
"WinGetVersion" : "1.0.11692"
}
Des outils en ligne comme Winstall permettent de générer facilement des JSON d'import.
Mettre à jour vos applications
Depuis sa version 0.4/1.0, winget permet la mise à jour d'une application ou de toutes celles installées :
winget upgrade vlc
winget upgrade --all
Nous avons parfois rencontré des soucis avec cette fonctionnalité, certaines applications détectant constamment une nouvelle version. Un cas que les éditeurs devront régler pour assurer leur compatibilité avec winget.
Modifier les paramètres de winget
Il est aussi possible de gérer certains paramètres et d'activer des fonctionnalités expérimentales :
winget settings
Cela ouvre un fichier JSON dont la composition est détaillée par ici. On peut ainsi remplacer la barre de progression bleue par les couleurs de l'arc-en-ciel, désactiver la télémétrie, modifier l'outil de téléchargemet, activer le Microsoft Store comme source ou la gestion des dépendances. Ces deux dernières sont encore au stade expérimental.
winget : comment installer plusieurs applications d’un coup sous Windows 10/11
-
Enfin un gestionnaire de paquets dans Windows !
-
winget : les commandes basiques
-
Installer plusieurs applications via winget : notre script
-
L'import/export de winget
-
Mettre à jour vos applications
-
Modifier les paramètres de winget
Commentaires (40)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 16/09/2021 à 06h50
J’espère vraiment qu’il sera à la hauteur de ses ambitions.
Peut-être même une intégration dans SCCM ?
Pourquoi il y a moins de commentaire sur la RTX ?
Le 16/09/2021 à 18h40
Ou une utilisation intégrée à Endpoint Manager (Intune)
Plus besoin de créer d’apps ou de PS, juste indiquer le paquet que WinGet doit télécharger.
Le 16/09/2021 à 06h55
Merci David pour ce script :)
Le 16/09/2021 à 07h09
Merci pour l’article, a creuser (comme des tonnes d’autres choses XD)
Le 16/09/2021 à 07h13
VIS MA VIE
Le 16/09/2021 à 07h24
Ah excellente idée, merci aussi pour la clarté du tuto
Le 16/09/2021 à 07h26
Dommage que l’installation du script se fasse via curl, et non via winget.
Il n’y a pas de possibilité d’utiliser des dépôts externes dans winget ?
Le 16/09/2021 à 07h52
Je ne comprends pas la question/remarque. C’est un script, winget est fait pour installer des applications. Je pourrais le diffuser via la gallerie powerhsell effectivement, mais ce n’est pas encore le cas ;)
Pour les dépôts externe, il serait bon de… lire l’article
aka le Microsoft Store ;) Pour rappel, on peut désormais placer n’importe quelle app sur le Store (classique ou non), mais c’est aux développeurs de faire le boulot.
Il existe aussi des tas de GUI pour Winget (open source toussa), voir sur GitHub où il y a pas mal de projets. Chocolatey est forcément plus complet, du fait de son ancienneté, le décalage va forcément s’estomper peu à peu. Chacun est de toutes façons libre d’utiliser ce qui a sa préférence (on a déjà fait un papier sur chocolatey)
PS : j’ai ajouté une mention de Winstall d’ailleurs dans l’article pour la création de JSON d’import.
Le 16/09/2021 à 07h55
Merci de ces informations David, toujours pertinent dans tes réponses.
J’ignorai totalement que n’importe quelle app pouvait être présente sur le store à présent. Cela change beaucoup de choses pour moi !
Le 16/09/2021 à 07h57
Pour l’accès à des applications classiques, ça fait un moment, mais c’était peu utilisé en pratique et ça a été facilité avec le nouveau store et sa politique. On verra si ça prend, mais pour la plupart des applications ça sera une bonne solution de diffusion, d’autant plus quand le Store sera nativement une source pour winget en complément du dépôt communautaire.
De mémoire ils avaient implémenté les group policy dans des versions antérieures à la 0.4 donc je serais tenté de dire oui, mais je n’ai pas testé personnellement. (Si tu parles de winget en tant que tel, c’est un MSIX Bundle, donc ça doit aussi s’installer sans problème).
Le 16/09/2021 à 08h36
C’est très pratique pour certaines, comme PowerShell 7, Python ou Windows Terminal (mise à jour auto).
Winget apporte d’autres applications, comme NodeJS qui n’est pas dans le store.
Le 16/09/2021 à 08h48
Oui alors Python installé via le Store en général c’est un tel merdier que je préfère passer par une installation classique ou winget (qui de mémoire n’a pas les mêmes effets sur les chemins).
Le 16/09/2021 à 07h44
Je trouve quand même pour le moment Chocolatey beaucoup plus pratique, surtout que l’on peut ajouter une UI pour être plus user-friendly.
Si seulement les applications Windows 10 n’étaient pas aussi nulles sur le store (interface, webapp déguisée, ergonomie), ça serait super bien de fonctionner comme sur iOS/Android avec un Marketplace.
D’ailleurs, je n’utilise pas le store windows mais j’ai remarqué que beaucoup d’applications installées restaient dans le gestionnaire de tache même sans être exécutées (W10) c’est normal ça ?
Le 16/09/2021 à 07h57
On peut installer winget via GPO ou autre sur des machines en win 10H1 ?
Le 16/09/2021 à 08h03
L’article parle du dépôt github et de fichier json locaux. Il ne parle pas de dépôts externes (il ne dit pas que c’est possible, ni que c’est impossible). Avec le support des fichiers json, on voit bien qu’il y a de quoi construire le support de dépôts externes, mais est-ce fait ou à faire ?
Sous Debian, tu peux installer les outils apt (apt-utils, apt-listbugs, etc.) via apt. Ce ne sont que des scripts, mais ils sont packagés comme des applis.
Le 16/09/2021 à 08h33
Dans l’article :
Comme dit, il y a déjà un gestionnaire de scripts PS natif à Windows.
Tu double clique dessus
Le 16/09/2021 à 08h52
Bon, apparemment, il faut avoir un Microsoft Store en étét de marche (il est désactivé au boulot) pour pouvoir installer ce genre de fichiers. Raison pour laquelle Windows me dit des sottises.
Le 16/09/2021 à 08h20
Simple question : une fois ce fichier .msixbundle récupéré, on en fait quoi ? Ce n’est manifestement pas un MSI pur jus.
Le 16/09/2021 à 11h08
Je l’utilise depuis quelques mois et le bonheur ! Hormis quelques bugs (par exemple iTunes qui refuse de se mettre à jour ou les logiciels incompatibles comme FreeFileSync).
J’attends avec impatience les options qui empêcheront de créer un icône sur le bureau lors des MAJ et une meilleure gestion de la multi installation. Merci d’ailleurs pour votre script ! J’utilisais jusque lors le fichier JSON.
Le 16/09/2021 à 11h16
Avec Chocolatey, j’avais eu des soucis de conflit entre la mise à jour automatique de Firefox et la mise à jour via chocolatey. Si firefox faisait la mise à jour avant chocolatey, ce dernier ne détectait pas la nouvelle version.
Est-c quee winget a le même genre de problèmes ?
Le 16/09/2021 à 11h49
J’ai pas souvenir d’avoir le souci (et j’ai des mises à jour FF via winget)
Le 16/09/2021 à 11h54
C’est bien pratique mais il reste des points à améliorer.
Par exemple, lors d’une mise à jour via winget Firefox repasse en Anglais (pour tous les comptes du PC).
Désormais, je ne mets plus à jour Firefox via winget, mais via Firefox lui-même.
Je ne sais pas si ce problème vient de winget ou du packetage winget de Firefox réalisé par Mozilla.
Mais à la fin, je ne peux plus utiliser winget pour mettre à jour toutes les applications, je dois éviter Firefox…
Le 16/09/2021 à 13h40
C’est une question de manifeste je suppose. (idem pour FF, pas de FR).
Le 16/09/2021 à 18h41
Les produits Mozilla sont une tannées quand on veut faire du MUI, ce comportement ne m’étonne guère en fait.
Mais comme le dit @david_l, c’est ptet une question de manifeste.
Le 16/09/2021 à 19h54
Du MUI??
Le 16/09/2021 à 22h44
Multilingual User Interface. En gros l’installeur inclut toutes les langues et s’adapte à celui de l’OS.
Par exemple quand dans ton parc, tu dois gérer plusieurs langues. Tu balances l’installeur et voilà. Alors que Firefox tu dois télécharger une version par langue utilisée. Adobe propose les deux pour acrobat reader. J’utilise la version MUI et je ne me pose pas la question.
Mozilla a mis des années pour embrasser les GPO, maintenant une version MUI le rendrait parfait pour une utilisation en entreprise.
Le 18/09/2021 à 03h03
Pour Firefox ou Thunderbird, on peut installer les packs de langues sous forme d’extension.
Ensuite, on peut choisir la langue dans les paramètres.
Le 16/09/2021 à 13h24
Thunderbird aussi est passé en anglais…
Le 16/09/2021 à 19h28
Parfait cet outil !
La base d’applis est pas mal fournie, je trouve, ça va me faire gagner du temps en générant un petit json pour du déploiement sur d’autres machines.
Une idée pour un moyen simple de lancer la même commande mais en tapant “wg” plutôt que “winget” (ou “apt” )
Le 16/09/2021 à 22h52
C’est prévu l’année prochaine, 1er semestre en preview et disponibilité général au deuxième semestre
Microsoft
Je trouve ça long, mais je suis impatient. Comme j’attends le Microsoft connected cache depuis son annonce, mais sans retour pour une version standalone (sans l’infra SCCM)
Le 17/09/2021 à 03h52
Voir ici
Le 18/09/2021 à 07h24
Merci !
NextInpact, la réponse à toutes mes interrogations
Le 18/09/2021 à 09h01
Tutoman, à votre service !
Le 19/09/2021 à 08h05
Simpa. Vu que sur w11 winget sera présent par defaut, ça va me simplifier l’automatisation des installations des progrs de base (vlc, anydesk,…)
Le 19/09/2021 à 11h22
Merci, je garde ce tuto sous la main quand je ferais un formatage complet du PC à la sortie de la version finale de windows 11. Sympa le script pour faciliter la réinstallation de tous les logiciels essentiels d’un coup.
Le 19/09/2021 à 23h14
Merci pour le tuto, je vais le tester en tant qu’alternative à chocolatey.
Ça à l’air pas mal, mais il y a encore des appli qui lancent des GUI à l’install (genre gimp). Ça manque un peu d’intégration au système pour une solution maison. En l’état, je vois difficilement ce qu’il a de plus que chocolatey par exemple.
Aussi, est-ce qu’il y a moyen de connaître la liste des installables autrement que via la commande search ou la liste des manifestes rangés par lettre de l’alphabet ?
J’espère vraiment que cette méthode se démocratisera et que les dev de logiciels joueront le jeu, y’a du potentiel :)
Le 20/09/2021 à 06h58
Bonjour,
je ne connais pas trop Chocolatey.
Question bête , Il faut absolument que tes postes soient sur le même réseau ou domaine pour déployer ? car j’ai un parc de 80 postes en télétravail sans réseau ou domaine commun.
Merci :)
Le 20/09/2021 à 07h35
Pas forcément mais ça va être une galère
Le 20/09/2021 à 13h41
Oh c’est top ça, merci pour ce script.
Le 21/09/2021 à 23h32
mouais en attendant mieux je reste sur WAPT :)