Skip to main content

Winget

Winget est un module permettant l'installation automatisée d'applications disponibles dans le répertoire logiciel https://winget.run/. Il est à noter que la majorité des applications seront installées dans le %AppData% de l'utilisateur installant un logiciel. Ces logiciels sont donc unique à chaque utilisateur impliquant que si 20 utilisateurs du poste de travail désirent la même application, elle sera installée en 20 copies sur le poste. On réfère à ce type d'installation à "per-user" ou par utilisateur. La majorité des gestionnaires de logiciels du genre pour Windows fonctionnent de cette façon, l'avantage étant qu'un utilisateur n'a pas besoin de droits d'administrateur pour installer ces logiciels.

Cette méthode peut être une belle façon d'automatiser le déploiement logiciel sur un ordinateur personnel à un seul utilisateur puisqu'une simple tâche planifiée exécutant "winget update" et "winget upgrade --all" met à jour tous les logiciels pour l'utilisateur.

Il peut être installé en tant que module Powershell de la façon suivante (en tant qu'administrateur) :

PS C:\WINDOWS\system32> Install-Module Microsoft.WinGet.Client                                                          
Le fournisseur NuGet est requis pour continuer
PowerShellGet requiert le fournisseur NuGet, version 2.8.5.201 ou ultérieure, pour interagir avec les référentiels
NuGet. Le fournisseur NuGet doit être disponible dans « C:\Program Files\PackageManagement\ProviderAssemblies » ou «
C:\Users\Info\AppData\Local\PackageManagement\ProviderAssemblies ». Vous pouvez également installer le fournisseur
NuGet en exécutant la commande « Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force ». Voulez-vous
que PowerShellGet installe et importe le fournisseur NuGet maintenant ?
[O] Oui  [N] Non  [S] Suspendre  [?] Aide (la valeur par défaut est « O ») : O

Référentiel non approuvé
Vous installez les modules à partir d'un référentiel non approuvé. Si vous approuvez ce référentiel, modifiez sa valeur
 InstallationPolicy en exécutant l'applet de commande Set-PSRepository. Voulez-vous vraiment installer les modules à
partir de PSGallery ?
[O] Oui  [T] Oui pour tout  [N] Non  [U] Non pour tout  [S] Suspendre  [?] Aide (la valeur par défaut est « N ») : T
PS C:\WINDOWS\system32>

À sa première utilisation, vous devrez accepter les termes et conditions du module comme suit. La commande "update" au même titre que pour "apt" sous Ubuntu et Debian vérifie les mises à jour disponibles et la commande "upgrade --all" permet d'appliquer les mises à jour disponibles. Certaines mises à jour seront silencieuses en arrière plan et d'autres afficheront une fenêtre de progression mais tout sera toujours automatisé.

PS C:\WINDOWS\system32> winget update
The `msstore` source requires that you view the following agreements before using.
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US").

Do you agree to all the source agreements terms?
[Y] Yes  [N] No: Y
Name                                        Id                           Version             Available           Source
-----------------------------------------------------------------------------------------------------------------------
Microsoft Visual C++ 2015-2022 Redistribut… Microsoft.VCRedist.2015+.x86 14.36.32532.0       14.42.34433.0       winget
Microsoft Visual C++ 2015-2022 Redistribut… Microsoft.VCRedist.2015+.x64 14.36.32532.0       14.42.34433.0       winget
Microsoft OneDrive                          Microsoft.OneDrive           24.226.1110.0004    24.244.1204.0003    winget
Microsoft Teams                             Microsoft.Teams              24295.605.3225.8804 24335.208.3315.1951 winget
App Installer                               Microsoft.AppInstaller       1.24.25199.0        1.24.25200.0        winget
Power Automate                              Microsoft.DevHome            0.0.0.0             0.1901.687.0        winget
6 upgrades available.
PS C:\WINDOWS\system32> winget upgrade --all
Name                                        Id                           Version             Available           Source
-----------------------------------------------------------------------------------------------------------------------
Microsoft Visual C++ 2015-2022 Redistribut… Microsoft.VCRedist.2015+.x86 14.36.32532.0       14.42.34433.0       winget
Microsoft Visual C++ 2015-2022 Redistribut… Microsoft.VCRedist.2015+.x64 14.36.32532.0       14.42.34433.0       winget
Microsoft OneDrive                          Microsoft.OneDrive           24.226.1110.0004    24.244.1204.0003    winget
Microsoft Teams                             Microsoft.Teams              24295.605.3225.8804 24335.208.3315.1951 winget
App Installer                               Microsoft.AppInstaller       1.24.25199.0        1.24.25200.0        winget
Power Automate                              Microsoft.DevHome            0.0.0.0             0.1901.687.0        winget
6 upgrades available.

Installing dependencies:
This package requires the following dependencies:
  - Packages
      Microsoft.VCLibs.Desktop.14 [>= 14.0.33728.0]
      Microsoft.UI.Xaml.2.8 [>= 8.2310.30001.0]
      Microsoft.WindowsAppRuntime.1.5
(1/6) Found Microsoft Visual C++ 2015-2022 Redistributable (x86) [Microsoft.VCRedist.2015+.x86] Version 14.42.34433.0
Starting package install...
Successfully installed

#[...plein de barres de chargement]

La commande "winget --help" vous aidera à trouver les arguments nécessaires à l'utilisation du module :

PS C:\WINDOWS\system32> winget --help
Gestionnaire de package Windows v1.9.25200
Copyright (c) Microsoft Corporation. Tous droits réservés.

L’utilitaire de ligne de commande winget permet d’installer des applications et d’autres packages à partir de la ligne de commande.

Utilisation : winget  [<commande>] [<options>]

Les commandes suivantes sont disponibles :
  install    Installe le package donné
  show       Affiche des informations sur un package
  source     Gérer les sources des packages
  search     Rechercher et afficher des informations de base sur les packages
  list       Afficher les packages installés
  upgrade    Affiche et effectue les mises à niveau disponibles.
  uninstall  Désinstallation du paquet donné
  hash       Assistant pour le hachage des fichiers d’installation
  validate   Valide un fichier manifeste
  settings   Ouvrir les paramètres ou définir les paramètres d’administrateur
  features   Affiche le statut des fonctionnalités expérimentales
  export     Exporte une liste des packages installés
  import     Installe tous les packages dans un fichier
  pin        Gérer les broches de package
  configure  Configure le système dans un état souhaité
  download   Télécharge le programme d’installation à partir d’un package donné
  repair     Répare le package sélectionné

La commande "winget search [application]" vous permettrait de vérifier si une application est disponible sur leur répertoire. Dans l'exemple suivant, 

PS C:\WINDOWS\system32> winget search VSCode
Nom                                ID                                  Version      Correspondance               Source
-----------------------------------------------------------------------------------------------------------------------
Microsoft Visual Studio Code       Microsoft.VisualStudioCode          1.96.4       Moniker: vscode              winget
Codium                             Alex313031.Codium                   1.89.1.24132 Tag: vscode                  winget
TheiaBlueprint                     EclipseFoundation.TheiaBlueprint    1.44.0       Tag: vscode                  winget
TheiaIDE                           EclipseFoundation.TheiaIDE          1.54.0       Tag: vscode                  winget
Huawei QuickApp IDE                Huawei.QuickAppIde                  14.0.1       Tag: vscode                  winget
DevPod                             LoftLabs.DevPod                     0.6.9        Tag: vscode                  winget
VSCodium                           VSCodium.VSCodium                   1.96.4.25017 Tag: vscode                  winget
VSCodium Insiders                  VSCodium.VSCodium.Insiders          1.97.0.24352 Tag: vscode                  winget
vscli                              michidk.vscli                       1.1.0        Tag: vscode                  winget
Upgit                              pluveto.Upgit                       0.2.18       Tag: vscode                  winget
MrCode                             zokugun.MrCode                      1.82.0.23253 Tag: vscode                  winget
Microsoft Visual Studio Code CLI   Microsoft.VisualStudioCode.CLI      1.96.4       Moniker: vscode-cli          winget
Microsoft Visual Studio Code Insi… Microsoft.VisualStudioCode.Insiders 1.97.0       Moniker: vscode-insiders     winget
Microsoft Visual Studio Code Insi… Microsoft.VisualStudioCode.Insider… 1.97.0       Moniker: vscode-insiders-cli winget
markdown-oxide                     FelixZeller.markdown-oxide          0.23.1       Tag: vscode-language-support winget

Connaissant maintenant l'ID de l'application recherchée, nous pouvons maintenant l'installer!

PS C:\WINDOWS\system32> winget install Microsoft.VisualStudioCode
Trouvé Microsoft Visual Studio Code [Microsoft.VisualStudioCode] Version 1.96.4
La licence d’utilisation de cette application vous est octroyée par son propriétaire.
Microsoft n’est pas responsable des paquets tiers et n’accorde pas de licences à ceux-ci.
Téléchargement en cours https://vscode.download.prss.microsoft.com/dbazure/download/stable/cd4ee3b1c348a13bafd8f9ad8060705f6d4b9cba/VSCodeUserSetup-x64-1.96.4.exe
  ██████████████████████████████   100 MB /  100 MB
Le code de hachage de l’installation a été vérifié avec succès
Démarrage du package d’installation... Merci de patienter.
Installé correctement

# Redémarrage du shell pour recharger les variables d'environnement
PS C:\Users\Info> (Get-Command code).path
C:\Users\Info\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd

image.png

La commande "winget list" permet de voir l'ensemble des logiciels et indiquera lesquelles ont été installées et sont gérées par winget.

PS C:\Users\Info> winget list
Nom                                           ID                                            Version             Source
-----------------------------------------------------------------------------------------------------------------------
VMware Tools                                  ARP\Machine\X64\{6070BE95-B84D-40FE-8ABD-C70… 12.4.5.23787635
Microsoft Edge                                Microsoft.Edge                                132.0.2957.115      winget
Microsoft Visual C++ 2015-2022 Redistributab… Microsoft.VCRedist.2015+.x64                  14.42.34433.0       winget
Microsoft Visual C++ 2015-2022 Redistributab… Microsoft.VCRedist.2015+.x86                  14.42.34433.0       winget
Microsoft OneDrive                            Microsoft.OneDrive                            24.244.1204.0003    winget
Microsoft Visual Studio Code (User)           Microsoft.VisualStudioCode                    1.96.4              winget
Microsoft Clipchamp                           MSIX\Clipchamp.Clipchamp_3.1.11920.0_neutral… 3.1.11920.0
Microsoft Teams                               Microsoft.Teams                               24335.208.3315.1951 winget
AV1 Video Extension                           MSIX\Microsoft.AV1VideoExtension_1.3.4.0_x64… 1.3.4.0
AVC Encoder Video Extension                   MSIX\Microsoft.AVCEncoderVideoExtension_1.1.… 1.1.3.0
Améliorations de la compatibilité des applic… MSIX\Microsoft.ApplicationCompatibilityEnhan… 1.2411.16.0
Actualités                                    MSIX\Microsoft.BingNews_4.55.62231.0_x64__8w… 4.55.62231.0
Recherche Web de Microsoft Bing               MSIX\Microsoft.BingSearch_1.1.3.0_x64__8weky… 1.1.3.0
MSN Météo                                     MSIX\Microsoft.BingWeather_4.54.63007.0_x64_… 4.54.63007.0
Copilot                                       MSIX\Microsoft.Copilot_1.24122.48.0_x64__8we… 1.24122.48.0
Installeur d'applications                     Microsoft.AppInstaller                        1.24.25200.0        winget