<h2><a name="p-26790-mise-jour-2026-02-11-nouvelle-fonctionnalit-list-details-1" class="anchor" href="#p-26790-mise-jour-2026-02-11-nouvelle-fonctionnalit-list-details-1" aria-label="Heading link"></a>Mise à jour 2026-02-11 - Nouvelle fonctionnalité <code>list --details</code></h2>
<p>La nouvelle fonctionnalité en pré-version <a href="https://github.com/microsoft/winget-cli/releases/tag/v1.28.190">v1.28.190</a> 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é.</p>
<p>Un exemple de sortie pour un seul paquet installé est :</p>
<pre><code class="lang-auto">> 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]
</code></pre>
<h2><a name="p-26790-mise-jour-2023-04-17-2" class="anchor" href="#p-26790-mise-jour-2023-04-17-2" aria-label="Heading link"></a>Mise à jour 2023-04-17</h2>
<p>Il semble que winget version <code>v1.5.1081-preview</code> et supérieure (celles incluant <a href="https://github.com/microsoft/winget-cli/pull/3128">PR3128</a>), inclut des informations sur les répertoires par défaut en exécutant <code>winget --info</code>.</p>
<p>Il y a aussi un problème ouvert pour pouvoir lister les répertoires par application (<a href="https://github.com/microsoft/winget-cli/issues/2298">Issue 2298</a>).</p>
<p>Concernant Zotero lui-même, je n’ai pas pu trouver un paquet avec l’ID <code>Zotero.Zotero</code>, mais j’ai trouvé <a href="https://github.com/microsoft/winget-pkgs/tree/0b08dbffe64576f87977de00e2e4bf0dff9532e4/manifests/d/DigitalScholar/Zotero/6.0.9">DigitalScholar.Zotero</a>. 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 <code>C:\Program Files (x86)\Zotero</code>, bien que je n’aie rien vu d’explicite).</p>
<p>Remarque : Il est possible que votre version supplémentaire de <code>Zotero.Zotero</code> 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.</p>
<h2><a name="p-26790-rponse-originale-3" class="anchor" href="#p-26790-rponse-originale-3" aria-label="Heading link"></a>Réponse originale</h2>
<p>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.</p>
<p>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 : <code>%localappdata%\microsoft\winget\packages</code></p>
<p>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 <code>%localappdata%\Microsoft\WinGet\Links</code>.</p>
<p>Remarque : Certains manifestes d’applications peuvent spécifier un répertoire d’installation par défaut. Celui-ci est donné dans leur propriété <code>InstallLocation</code> (voir le <a href="https://raw.githubusercontent.com/microsoft/winget-cli/master/schemas/JSON/manifests/v1.4.0/manifest.installer.1.4.0.json">schéma</a>).</p>
<h2><a name="p-26790-tentative-choue-de-recherche-de-mtadonnes-4" class="anchor" href="#p-26790-tentative-choue-de-recherche-de-mtadonnes-4" aria-label="Heading link"></a>Tentative échouée de recherche de métadonnées</h2>
<p>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).</p>
<p>Vous pouvez obtenir le chemin de son fichier de paramètres en exécutant <code>winget settings</code> puis en regardant le chemin du fichier <code>settings.json</code> que cela ouvre. Pour moi, c’était : <code>C:\Users\myUsername\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json</code></p>
<p>En fouillant dans ce répertoire, j’ai trouvé une base de données SQLite : <code>C:\Users\myUsername\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\Microsoft.Winget.Source_8wekyb3d8bbwe\installed.db</code>.</p>
<p>Nous pouvons interroger ce fichier/base de données en utilisant le PowerShell suivant :</p>
<pre><code class="lang-auto"># 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()
$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
</code></pre>