Get-Package est une commande PowerShell qui permet d’afficher les logiciels installés sur un système Windows. Elle est utilisée par les techniciens pour faire un inventaire, diagnostiquer un poste, ou préparer une maintenance (mise à jour, désinstallation, migration).
Get-Package permet de :
C’est une commande en lecture seule : elle n’installe ni ne supprime rien.
Get-Package
Cette commande retourne, entre autres :
NameVersionProviderNameSourceStatusGet-Package | Select-Object Name, Version, ProviderName
ProviderName (élément clé)Un provider indique quel système d’installation est responsable du logiciel.
Windows peut installer des logiciels de différentes manières, et Get-Package les distingue grâce à ProviderName.
👉 ProviderName répond à la question :
« Par quel mécanisme ce logiciel a-t-il été installé ? »
msiExemples :
👉 Ces logiciels sont généralement désinstallables proprement.
msu.msu)Exemples :
👉 Souvent liés au système, pas à des logiciels utilisateurs.
ProgramsLogiciels détectés via le registre Windows
Souvent installés via :
.exeExemples :
👉 Très fréquent, mais moins standardisé que MSI.
NuGet👉 Peu utilisé sur des postes utilisateurs classiques.
PowerShellGetModules PowerShell installés via :
Install-Module
👉 Ne concerne pas les logiciels Windows classiques.
Get-Package | Where-Object { $_.ProviderName -eq "msi" }
Get-Package | Where-Object { $_.ProviderName -eq "Programs" }
Identifier les logiciels installés manuellement par l’utilisateur.
Get-Package |
Where-Object { $_.ProviderName -eq "Programs" } |
Select-Object Name, Version
Get-Package ne liste pas toujours tout
Certains logiciels portables (sans installation) n’apparaissent pas
Les résultats peuvent varier selon :
| ProviderName | Signification | Usage typique |
|---|---|---|
msi |
Windows Installer | Logiciels standards |
msu |
Windows Update | Correctifs système |
Programs |
Registre Windows | Logiciels classiques |
NuGet |
Paquets .NET | Développement |
PowerShellGet |
Modules PowerShell | Administration |
Get-Package est un outil essentiel pour l’inventaire logiciel et le diagnostic système.
La colonne ProviderName permet de comprendre l’origine des installations, ce qui est crucial pour :