Partager via


Utilisation des installations de logiciels

Les applications installées avec Windows Installer peuvent être trouvées au moyen de requêtes WMI. Toutefois, les applications n’utilisent pas toutes Windows Installer. Les techniques spécifiques de recherche des applications installées avec d’autres outils dépendent du programme d’installation.

Par exemple, les applications installées par copie des fichiers dans un dossier sur l’ordinateur ne peuvent généralement pas être gérées au moyen des techniques présentées ici. Vous pouvez gérer ces applications en tant que fichiers et dossiers en utilisant les techniques présentées dans la section Utilisation des fichiers et dossiers.

Pour les logiciels installés avec un package d’installation, Windows Installer peut être recherché en utilisant les classes Win32Reg_AddRemovePrograms ou Win32_Product. Cependant, ces deux méthodes présentent des problèmes. La classe Win32Reg_AddRemovePrograms est disponible uniquement si vous utilisez System Center Configuration Manager (SCCM). La classe Win32_Product peut être lente et a des effets secondaires.

Attention

La classe Win32_Product n’est pas optimisée pour les requêtes. Les requêtes basées sur des filtres génériques forcent WMI à utiliser le fournisseur MSI pour énumérer tous les produits installés avant d’analyser de façon séquentielle la liste complète pour gérer le filtre. Ce processus lance également une vérification de cohérence des packages installés, en vérifiant et en réparant l’installation. La validation est un processus assez lent qui peut entraîner des erreurs dans les journaux des événements. Pour plus d’informations, consultez l’article 974524 de la Base de connaissances.

Cet article présente une autre méthode possible pour rechercher les logiciels installés.

Interrogation de la clé de Registre Uninstall pour rechercher les logiciels installés

Étant donné que la plupart des applications standard inscrivent un programme de désinstallation auprès de Windows, nous pouvons les rechercher dans le Registre Windows pour les utiliser localement. Aucune méthode ne garantit l'identification de toutes les applications présentes sur un système. Il est toutefois possible de rechercher tous les programmes avec des listes affichées dans Ajouter ou supprimer des programmes dans la clé de registre suivante :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall.

Nous pouvons trouver le nombre d’applications installées en comptant le nombre de clés de Registre :

$UninstallPath = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall'
(Get-ChildItem -Path $UninstallPath).Count
459

Nous pouvons affiner cette liste d’applications à l’aide de diverses techniques. Pour afficher les valeurs de Registre dans les clés de Registre sous Uninstall, utilisez la méthode GetValue() des clés de Registre. La valeur de la méthode est le nom de l'entrée de Registre. Par exemple, pour rechercher les noms complets des applications dans la clé Uninstall, utilisez la commande suivante :

Get-ChildItem -Path $UninstallPath |
    ForEach-Object -Process { $_.GetValue('DisplayName') } |
    Sort-Object

Notes

Rien ne garantit que les valeurs de DisplayName soient uniques.

L’exemple suivant produit une sortie similaire à la classe Win32Reg_AddRemovePrograms :

Get-ChildItem $UninstallPath |
    ForEach-Object {
        $ProdID = ($_.Name -split '\\')[-1]
        Get-ItemProperty -Path "$UninstallPath\$ProdID" -ea SilentlyContinue |
        Select-Object -Property DisplayName, InstallDate, @{n='ProdID'; e={$ProdID}}, Publisher, DisplayVersion
} | Select-Object -First 3

Par souci de concision, cet exemple utilise Select-Object pour limiter à trois le nombre d’éléments retournés.

DisplayName    : 7-Zip 22.01 (x64)
InstallDate    :
ProdID         : 7-Zip
Publisher      : Igor Pavlov
DisplayVersion : 22.01

DisplayName    : AutoHotkey 1.1.33.10
InstallDate    :
ProdID         : AutoHotkey
Publisher      : Lexikos
DisplayVersion : 1.1.33.10

DisplayName    : Beyond Compare 4.4.6
InstallDate    : 20230310
ProdID         : BeyondCompare4_is1
Publisher      : Scooter Software
DisplayVersion : 4.4.6.27483