Mise à jour 2026-02-11 - Nouvelle fonctionnalité list --details
La nouvelle fonctionnalité en pré-version v1.28.190 active une nouvelle option pour la commande list, --details. Lorsqu’elle est fournie, la sortie n’est plus une vue en tableau des résultats mais plutôt une série de sorties de type show tirant les données de l’élément installé.
Un exemple de sortie pour un seul paquet installé est :
> wingetdev list Microsoft.VisualStudio.2022.Enterprise --details
Visual Studio Enterprise 2022 [Microsoft.VisualStudio.2022.Enterprise]
Version: 17.14.21 (November 2025)
Publisher: Microsoft Corporation
Local Identifier: ARP\Machine\X86\875fed29
Product Code: 875fed29
Installer Category: exe
Installed Scope: Machine
Installed Location: C:\Program Files\Microsoft Visual Studio\2022\Enterprise
Available Upgrades:
winget [17.14.23]
Mise à jour 2023-04-17
Il semble que winget version v1.5.1081-preview et supérieure (celles incluant PR3128), inclut des informations sur les répertoires par défaut en exécutant winget --info.
Il y a aussi un problème ouvert pour pouvoir lister les répertoires par application (Issue 2298).
Concernant Zotero lui-même, je n’ai pas pu trouver un paquet avec l’ID Zotero.Zotero, mais j’ai trouvé DigitalScholar.Zotero. Cela montre que l’installateur par défaut est utilisé, donc le chemin par défaut serait le même que celui de l’application (en fouillant dans leur documentation, cela semble être C:\Program Files (x86)\Zotero, bien que je n’aie rien vu d’explicite).
Remarque : Il est possible que votre version supplémentaire de Zotero.Zotero n’existe pas sur le disque ; mais existe uniquement dans la base de données de WinGet (par exemple, si elle a été installée puis le chemin supprimé sans que WinGet en soit informé). Voir “Tentative échouée de recherche de métadonnées” pour savoir comment interroger cette base de données.
Réponse originale
L’emplacement exact dépend du paquet et, autant que je puisse le dire, il n’y a actuellement aucun moyen de récupérer cette information pour tous les paquets winget installés.
Pour ceux qui n’ont pas d’installateur, mais sont simplement des fichiers téléchargés, ils sont placés dans un dossier sous : %localappdata%\microsoft\winget\packages
Lorsqu’il y a un exe avec un alias de commande portable (c’est-à-dire pour éviter d’ajouter le chemin de chaque exe à votre variable PATH), un lien symbolique est créé. Ce lien symbolique est conservé dans %localappdata%\Microsoft\WinGet\Links\.
Remarque : Certains manifestes d’applications peuvent spécifier un répertoire d’installation par défaut. Celui-ci est donné dans leur propriété InstallLocation (voir le schéma).
Tentative échouée de recherche de métadonnées
Je me suis demandé si l’on pouvait trouver le chemin sous lequel WinGet stocke les métadonnées des paquets installés… Je n’ai pas pu - mais voici des notes au cas où cela aiderait d’autres à chercher plus loin (ma conclusion est que WinGet ne se souvient pas de l’endroit où il installe les choses, seulement qu’il les a installées / quelle version il a installée ; tout le reste est laissé à l’installateur par défaut).
Vous pouvez obtenir le chemin de son fichier de paramètres en exécutant winget settings puis en regardant le chemin du fichier settings.json que cela ouvre. Pour moi, c’était : C:\Users\myUsername\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
En fouillant dans ce répertoire, j’ai trouvé une base de données SQLite : C:\Users\myUsername\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\Microsoft.Winget.Source_8wekyb3d8bbwe\installed.db.
Nous pouvons interroger ce fichier/base de données en utilisant le PowerShell suivant :
# Load the System.Data.SQLite.dll assembly. This is likely already somewhere on your machine, but if you can't find it, see https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
Add-Type -Path 'C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\PrivateAssemblies\System.Data.SQLite.dll'
# Update this path with your install.db path
$installDbPath = 'C:\Users\myUsername\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\Microsoft.Winget.Source_8wekyb3d8bbwe\installed.db'
# create a connection to this db
$con = [System.Data.SQLite.SQLiteConnection]::new("Data Source=$installDbPath")
$con.Open()
# Create and execute a query to list all tables (thanks to https://stackoverflow.com/a/14623907/361842 for the SQL)
$command = $con.CreateCommand()
$command.CommandText = @"
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1;
"@
$data = [System.Data.DataSet]::new()
$adapter = [System.Data.SQLite.SQLiteDataAdapter]::new($command)
$adapter.Fill($data) | Out-Null
$data.Tables.Rows
# channels
# commands
# commands_map
# ids
# manifest
# manifest_metadata
# metadata
# monikers
# names
# norm_names
# norm_names_map
# norm_publishers
# norm_publishers_map
# pathparts
# pfns
# pfns_map
# productcodes
# productcodes_map
# tags
# tags_map
# versions
# Now repeat over the IDs table to give the IDs of all installed packages
$command.CommandText = "SELECT * FROM ids"
$data = [System.Data.DataSet]::new() # reset this to avoid appending
$adapter.Fill($data) #note: adapter has a reference to $command, so by updating the command text the adapter's command is automatically updated
$data.Tables.Rows | ft -AutoSize
# sadly I hunted through all the other tables but couldn't find any hint of an installation directory being stored here