winget : comment installer plusieurs applications d'un coup sous Windows 10/11

winget : comment installer plusieurs applications d’un coup sous Windows 10/11

CLI FTW !

Avatar de l'auteur
David Legrand

Publié dans

Logiciel

16/09/2021 6 minutes
40

winget : comment installer plusieurs applications d'un coup sous Windows 10/11

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.

40

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

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

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Commentaires (40)


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 ? :roule2:


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.


Merci David pour ce script :)


Merci pour l’article, a creuser (comme des tonnes d’autres choses XD)



(reply:1899138:dvr-x)




VIS MA VIE :D


Ah excellente idée, merci aussi pour la clarté du tuto :yes:


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 ?


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




Adhrone a dit:


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.




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.


David_L

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




Adhrone a dit:


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.




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.


Merci de ces informations David, toujours pertinent dans tes réponses. :smack:



J’ignorai totalement que n’importe quelle app pouvait être présente sur le store à présent. Cela change beaucoup de choses pour moi !


Altium

Merci de ces informations David, toujours pertinent dans tes réponses. :smack:



J’ignorai totalement que n’importe quelle app pouvait être présente sur le store à présent. Cela change beaucoup de choses pour moi !


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.




xillibit a dit:


On peut installer winget via GPO ou autre sur des machines en win 10H1 ?




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


Altium

Merci de ces informations David, toujours pertinent dans tes réponses. :smack:



J’ignorai totalement que n’importe quelle app pouvait être présente sur le store à présent. Cela change beaucoup de choses pour moi !


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.


Edtech

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.

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


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 ?


On peut installer winget via GPO ou autre sur des machines en win 10H1 ?



David_L a dit:


Pour les dépôts externe, il serait bon de… lire l’article :D




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 ?




David_L a dit:


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 ;)




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.


Dans l’article :




Les principales fonctionnalités étaient de toute façon intégrées, comme la mise à jour, l’import/export, les sources multiples, etc



(quote:1899217:alex.d.)
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.




Comme dit, il y a déjà un gestionnaire de scripts PS natif à Windows.




Gilbert_Gosseyn a dit:


Simple question : une fois ce fichier .msixbundle récupéré, on en fait quoi ? Ce n’est manifestement pas un MSI pur jus.




Tu double clique dessus :D


David_L

Dans l’article :




Les principales fonctionnalités étaient de toute façon intégrées, comme la mise à jour, l’import/export, les sources multiples, etc



(quote:1899217:alex.d.)
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.




Comme dit, il y a déjà un gestionnaire de scripts PS natif à Windows.




Gilbert_Gosseyn a dit:


Simple question : une fois ce fichier .msixbundle récupéré, on en fait quoi ? Ce n’est manifestement pas un MSI pur jus.




Tu double clique dessus :D


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.


Simple question : une fois ce fichier .msixbundle récupéré, on en fait quoi ? Ce n’est manifestement pas un MSI pur jus.


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.


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 ?


J’ai pas souvenir d’avoir le souci (et j’ai des mises à jour FF via winget)


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…


C’est une question de manifeste je suppose. (idem pour FF, pas de FR).


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.


tifounon

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.

Du MUI??


Soriatane

Du MUI??


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.


tifounon

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.

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.


Thunderbird aussi est passé en anglais…


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” :rem: )



tifounon a dit:


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.




C’est prévu l’année prochaine, 1er semestre en preview et disponibilité général au deuxième semestre
https://techcommunity.microsoft.com/t5/windows-it-pro-blog/evolving-the-microsoft-store-for-business-and-education/ba-p/2569423



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)



pInUS a dit:


Une idée pour un moyen simple de lancer la même commande mais en tapant “wg” plutôt que “winget” (ou “apt” :rem: )




Voir ici :chinois:


Merci !
NextInpact, la réponse à toutes mes interrogations :bravo:


pInUS

Merci !
NextInpact, la réponse à toutes mes interrogations :bravo:

Tutoman, à votre service !


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,…)


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.


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


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


Flodez33

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


Pas forcément mais ça va être une galère


Oh c’est top ça, merci pour ce script.


mouais en attendant mieux je reste sur WAPT :)