Partager via


Utilisation de Windows Installer pour inventorier les produits et les correctifs

Les utilisateurs et les applications disposant de privilèges d’administration peuvent utiliser les fonctions Windows Installer pour inventorier les applications, fonctionnalités, composants et correctifs Windows Installer installés sur le système.

À compter de Windows Installer 3.0, les utilisateurs et les applications disposant de privilèges d’administrateur peuvent énumérer les applications, fonctionnalités, composants et correctifs Windows Installer installés sur le système par tous les utilisateurs. Les administrateurs et les applications peuvent obtenir des informations sur un produit ou un correctif pour un utilisateur particulier ou tous les utilisateurs du système. Les applications peuvent obtenir l’état de la fonctionnalité ou l’état du composant pour un utilisateur particulier.

Les fonctions d’inventaire disponibles à partir de Windows Installer 3.0 peuvent limiter l’étendue des éléments à trouver par contexte d’installation et par contexte utilisateur. Il existe trois contextes d’installation possibles : par utilisateur, par ordinateur et par utilisateur géré. Le contexte utilisateur peut être un utilisateur particulier ou tous les utilisateurs du système.

Les versions des fonctions d’inventaire de Windows Installer antérieures à Windows Installer 3.0 peuvent uniquement énumérer les éléments installés sur le système dans le contexte de l’ordinateur ou dans le contexte par utilisateur de l’utilisateur actuel. Cette limitation empêche l’inventaire complet de tous les produits et correctifs Windows Installer installés dans le système par des utilisateurs autres que l’utilisateur actuel.

Énumération des produits

Utilisez la fonction MsiEnumProductsEx pour énumérer les applications Windows Installer installées dans le système. Cette fonction peut rechercher toutes les installations par ordinateur et les installations par utilisateur des applications (gérées et non managées) pour l’utilisateur actuel et d’autres utilisateurs du système. Utilisez le paramètre dwContext pour spécifier le contexte d’installation. Vous pouvez spécifier un ou n’importe quelle combinaison des contextes d’installation possibles. Utilisez le paramètre szUserSid pour spécifier le contexte utilisateur des applications à trouver.

Énumération des correctifs

Utilisez la fonction MsiEnumPatchesEx pour rechercher les correctifs appliqués à une application. Cette fonction peut trouver les correctifs appliqués pour une application particulière ou pour toutes les applications du système. Cette fonction peut trouver les correctifs appliqués à toutes les installations par ordinateur et aux installations par utilisateur des applications (gérées et non managées) pour l’utilisateur actuel et d’autres utilisateurs du système.

Vous pouvez utiliser le contexte d’installation et le contexte utilisateur pour limiter l’énumération de correctifs à un contexte particulier ou à tous les contextes. Utilisez le paramètre dwContext pour spécifier le contexte d’installation. Vous pouvez spécifier un ou n’importe quelle combinaison des contextes d’installation possibles. Utilisez le paramètre szUserSid pour spécifier le contexte utilisateur des applications à trouver.

Pour énumérer les correctifs appliqués à tous les produits publiés ou installés par tous les utilisateurs du système

  • Appelez la fonction MsiEnumPatchesEx .
    • Utilisez NULL pour la valeur du paramètre szProductCode .
    • Utilisez « s-1-1-0 » pour la valeur du paramètre szUserSid .
    • Utilisez « MSIINSTALLCONTEXT_ALL » pour la valeur du paramètre dwContext .

Pour énumérer les correctifs appliqués à tous les produits publiés ou installés par tous les utilisateurs du système

  1. Appelez la fonction MsiEnumProductsEx .

    • Utilisez NULL pour la valeur du paramètre szProductCode .
    • Utilisez « s-1-1-0 » pour la valeur du paramètre szUserSid .
    • Utilisez « MSIINSTALLCONTEXT_ALL » pour la valeur du paramètre dwContext .

    La fonction fournit un code de produit, un contexte utilisateur et un contexte d’installation pour chaque application trouvée.

  2. Pour chaque application énumérée à l’étape 1, appelez MsiEnumPatchesEx pour énumérer les correctifs.

    Utilisez les codes de produit, les contextes utilisateur et les contextes d’installation obtenus à partir de MsiEnumProductsEx pour les valeurs de szProductCode, szUserSid et dwContext, et chaque appel de fonction MsiEnumProductsEx .

Obtention d’informations sur le produit

Utilisez la fonction MsiGetProductInfoEx pour obtenir des informations sur les applications publiées ou installées sur le système, ainsi que sur les propriétés qui peuvent être récupérées. Cette fonction peut obtenir des informations sur un instance d’une application installée sous un compte d’utilisateur autre que l’utilisateur actuel, mais ne peut pas interroger un instance d’un produit publié dans un contexte non managé par utilisateur pour un compte d’utilisateur autre que l’utilisateur actuel.

Vous pouvez spécifier le contexte d’installation et le contexte utilisateur pour restreindre les informations pour les applications installées dans un contexte particulier. Utilisez le paramètre dwContext pour spécifier le contexte d’installation. Vous ne pouvez spécifier qu’un seul des contextes d’installation possibles. Utilisez le paramètre szUserSid pour spécifier le contexte utilisateur des applications à trouver.

Obtention d’informations sur les correctifs

Une application peut appeler la fonction MsiGetPatchInfoEx pour rechercher des informations sur l’application d’un correctif à un instance spécifié d’un produit. Les propriétés telles que LocalPackage, Transforms et State peuvent être récupérées à l’aide de cette fonction. Il n’est pas garanti que toutes les valeurs de propriété soient disponibles pour les applications non managées par utilisateur si l’utilisateur n’est pas connecté à l’ordinateur. Vous ne pouvez spécifier qu’un seul des contextes d’installation possibles.

Vous pouvez spécifier le contexte d’installation et le contexte utilisateur pour limiter les informations aux correctifs appliqués aux applications installées dans un contexte particulier. Utilisez le paramètre dwContext pour spécifier le contexte d’installation. Vous ne pouvez spécifier qu’un seul des contextes d’installation possibles. Utilisez le paramètre szUserSid pour spécifier le contexte utilisateur des applications à trouver.

Obtention d’informations sur l’état du composant

Les applications peuvent appeler la fonction MsiQueryComponentState pour obtenir l’état installé d’un composant. Cette fonction détermine si le composant est installé localement ou installé pour s’exécuter à partir de la source. La fonction peut interroger un composant d’un instance d’une application installée sous des comptes d’utilisateur autres que l’utilisateur actuel, à condition que le produit ne soit pas publié sous le contexte non managé par utilisateur pour un compte d’utilisateur autre que l’utilisateur actuel.

Vous pouvez spécifier un contexte d’installation et un contexte utilisateur pour obtenir l’état des composants pour les applications installées dans un contexte particulier. Utilisez le paramètre dwContext pour spécifier le contexte d’installation. Vous ne pouvez spécifier qu’un seul des contextes d’installation possibles. Utilisez le paramètre szUserSid pour spécifier le contexte utilisateur des applications à trouver.

Obtention d’informations sur l’état des fonctionnalités

Les applications peuvent appeler la fonction MsiQueryFeatureStateEx pour obtenir l’état installé d’une fonctionnalité de produit. Cette fonction détermine si la fonctionnalité est annoncée, installée localement ou installée pour s’exécuter à partir de la source. La fonction peut être utilisée pour interroger n’importe quelle fonctionnalité d’un instance d’une application installée sous le compte d’ordinateur ou tout contexte sous le compte d’utilisateur actuel ou le contexte managé par utilisateur sous n’importe quel compte d’utilisateur autre que l’utilisateur actuel. Cette fonction ne peut pas interroger une application installée dans le contexte non managé par utilisateur pour un compte d’utilisateur autre que l’utilisateur actuel. Vous ne pouvez spécifier qu’un seul des contextes d’installation possibles.

Vous pouvez spécifier un contexte d’installation et un contexte utilisateur pour obtenir l’état des fonctionnalités pour les applications installées dans un contexte particulier. Utilisez le paramètre dwContext pour spécifier le contexte d’installation. Vous ne pouvez spécifier qu’un seul des contextes d’installation possibles. Utilisez le paramètre szUserSid pour spécifier le contexte utilisateur des applications à trouver.