Share via


Verwenden von Windows Installer zum Inventarisieren von Produkten und Patches

Benutzer und Anwendungen mit Administratorrechten können Windows Installer-Funktionen verwenden, um auf dem System installierte Windows Installer-Anwendungen, -Features, -Komponenten und -Patches zu inventarisieren.

Ab Windows Installer 3.0 können Benutzer und Anwendungen, die über Administratorrechte verfügen, Windows Installer-Anwendungen, -Features, -Komponenten und -Patches auflisten, die von allen Benutzern auf dem System installiert wurden. Administratoren und Anwendungen können Informationen zu einem Produkt oder Patch für einen bestimmten Benutzer oder alle Benutzer im System abrufen. Anwendungen können den Featurezustand oder Komponentenstatus für einen bestimmten Benutzer abrufen.

Die ab Windows Installer 3.0 verfügbaren Inventurfunktionen können den Umfang der zu suchenden Elemente nach Installationskontext und Benutzerkontext einschränken. Es gibt drei mögliche Installationskontexte: pro Benutzer, pro Computer und verwaltet pro Benutzer. Der Benutzerkontext kann ein bestimmter Benutzer oder alle Benutzer im System sein.

Die Versionen der Windows Installer-Inventarfunktionen vor Windows Installer 3.0 können nur Elemente auf dem System im pro-Computer- oder im pro-Benutzer-Kontext des aktuellen Benutzers auflisten. Diese Einschränkung verhindert eine vollständige Bestandsaufnahme aller Windows Installer-Produkte und -Patches, die von anderen Benutzern als dem aktuellen Benutzer im System installiert werden.

Auflisten von Produkten

Verwenden Sie die MsiEnumProductsEx-Funktion, um Windows Installer-Anwendungen aufzulisten, die im System installiert sind. Diese Funktion kann alle Installationen pro Computer oder pro Benutzer von Anwendungen (verwaltet und nicht verwaltet) für den aktuellen Benutzer und andere Benutzer im System suchen. Verwenden Sie den dwContext-Parameter, um den zu suchenden Installationskontext anzugeben. Sie können einen oder eine beliebige Kombination der möglichen Installationskontexte angeben. Verwenden Sie den szUserSid-Parameter, um den Benutzerkontext der zu suchenden Anwendungen anzugeben.

Auflisten von Patches

Verwenden Sie die MsiEnumPatchesEx-Funktion, um Patches zu suchen, die für eine Anwendung angewendet wurden. Diese Funktion kann Patches suchen, die für eine bestimmte Anwendung oder für alle Anwendungen im System angewendet wurden. Diese Funktion kann auf alle Installationen pro Computer oder pro Benutzer von Anwendungen (verwaltet und nicht verwaltet) angewendete Patches für den aktuellen Benutzer und andere Benutzer im System suchen.

Sie können den Installationskontext und den Benutzerkontext verwenden, um die Patchauflistung auf einen bestimmten Kontext oder auf alle Kontexte zu beschränken. Verwenden Sie den dwContext-Parameter, um den zu suchenden Installationskontext anzugeben. Sie können einen oder eine beliebige Kombination der möglichen Installationskontexte angeben. Verwenden Sie den szUserSid-Parameter, um den Benutzerkontext der zu suchenden Anwendungen anzugeben.

Auflisten von Patches, die für alle Produkte angewendet wurden, die von allen Benutzern im System angekündigt oder installiert wurden

  • Rufen Sie die MsiEnumPatchesEx-Funktion auf.
    • Verwenden Sie NULL für den Wert des szProductCode-Parameter.
    • Verwenden Sie „s-1-1-0“ für den Wert des szUserSid-Parameters.
    • Verwenden Sie „MSIINSTALLCONTEXT_ALL“ für den Wert des dwContext-Parameters.

Auflisten von Patches, die für alle Produkte angewendet wurden, die von allen Benutzern im System angekündigt oder installiert wurden

  1. Rufen Sie die MsiEnumProductsEx-Funktion auf.

    • Verwenden Sie NULL für den Wert des szProductCode-Parameter.
    • Verwenden Sie „s-1-1-0“ für den Wert des szUserSid-Parameters.
    • Verwenden Sie „MSIINSTALLCONTEXT_ALL“ für den Wert des dwContext-Parameters.

    Die Funktion stellt einen Produktcode, einen Benutzerkontext und einen Installationskontext für jede gefundene Anwendung bereit.

  2. Rufen Sie für jede in Schritt 1 aufgelistete Anwendung MsiEnumPatchesEx auf, um die Patches aufzulisten.

    Verwenden Sie die von MsiEnumProductsEx abgerufenen Produktcodes, Benutzerkontexte und Installationskontexte für die Werte von szProductCode, szUserSid und dwContext sowie alle MsiEnumProductsEx-Funktionsaufrufe.

Abrufen von Produktinformationen

Verwenden Sie die MsiGetProductInfoEx-Funktion, um Informationen zu Anwendungen abzurufen, die auf dem System angekündigt oder installiert sind, sowie zu den Eigenschaften, die abgerufen werden können. Diese Funktion kann Informationen für eine Instanz einer Anwendung abrufen, die unter einem anderen Benutzerkonto als dem aktuellen Benutzer installiert ist, aber keine Instanz eines Produkts abfragen, das unter einem pro Benutzer nicht verwalteten Kontext für ein anderes Benutzerkonto als den aktuellen Benutzer angekündigt wird.

Sie können den Installationskontext und den Benutzerkontext angeben, um Informationen für Anwendungen einzuschränken, die in einem bestimmten Kontext installiert sind. Verwenden Sie den dwContext-Parameter, um den zu suchenden Installationskontext anzugeben. Sie können nur einen der möglichen Installationskontexte angeben. Verwenden Sie den szUserSid-Parameter, um den Benutzerkontext der zu suchenden Anwendungen anzugeben.

Abrufen von Patchinformationen

Eine Anwendung kann die MsiGetPatchInfoEx-Funktion aufrufen, um Informationen zur Anwendung eines Patches für eine angegebene Instanz eines Produkts abzufragen. Eigenschaften wie LocalPackage, Transformationen und Status können mit dieser Funktion abgerufen werden. Nicht alle Eigenschaftswerte sind garantiert für pro Benutzer nicht verwaltete Anwendungen verfügbar, wenn der Benutzer derzeit nicht auf dem Computer angemeldet ist. Sie können nur einen der möglichen Installationskontexte angeben.

Sie können den Installationskontext und den Benutzerkontext angeben, um Informationen auf für auf Anwendungen angewendete Patches einzuschränken, die in einem bestimmten Kontext installiert sind. Verwenden Sie den dwContext-Parameter, um den zu suchenden Installationskontext anzugeben. Sie können nur einen der möglichen Installationskontexte angeben. Verwenden Sie den szUserSid-Parameter, um den Benutzerkontext der zu suchenden Anwendungen anzugeben.

Abrufen von Komponentenstatusinformationen

Anwendungen können die MsiQueryComponentState-Funktion aufrufen, um den Installationsstatus einer Komponente abzurufen. Diese Funktion bestimmt, ob die Komponente lokal installiert ist oder von der Quelle aus ausgeführt wird. Die Funktion kann eine Komponente einer Instanz einer Anwendung abfragen, die unter anderen Benutzerkonten als dem aktuellen Benutzer installiert ist, vorausgesetzt, dass das Produkt nicht unter dem nicht pro Benutzer verwalteten Kontext für ein anderes Benutzerkonto als den aktuellen Benutzer angekündigt wird.

Sie können einen Installationskontext und einen Benutzerkontext angeben, um den Status von Komponenten für Anwendungen abzurufen, die in einem bestimmten Kontext installiert sind. Verwenden Sie den dwContext-Parameter, um den zu suchenden Installationskontext anzugeben. Sie können nur einen der möglichen Installationskontexte angeben. Verwenden Sie den szUserSid-Parameter, um den Benutzerkontext der zu suchenden Anwendungen anzugeben.

Abrufen von Featurezustandsinformationen

Anwendungen können die MsiQueryFeatureStateEx-Funktion aufrufen, um den Installationsstatus für ein Produktfeature abzurufen. Diese Funktion bestimmt, ob die Funktion lokal angekündigt wird, installiert ist oder von der Quelle aus ausgeführt wird. Die Funktion kann verwendet werden, um jedes Feature einer Instanz einer Anwendung abzufragen, die unter dem Computerkonto oder einem beliebigen Kontext unter dem aktuellen Benutzerkonto oder dem pro Benutzer verwalteten Kontext unter einem anderen Benutzerkonto als dem aktuellen Benutzer installiert ist. Diese Funktion kann keine Anwendung abfragen, die unter dem pro Benutzer nicht verwalteten Kontext für ein anderes Benutzerkonto als den aktuellen Benutzer installiert ist. Sie können nur einen der möglichen Installationskontexte angeben.

Sie können einen Installationskontext und einen Benutzerkontext angeben, um den Status von Features für Anwendungen abzurufen, die in einem bestimmten Kontext installiert sind. Verwenden Sie den dwContext-Parameter, um den zu suchenden Installationskontext anzugeben. Sie können nur einen der möglichen Installationskontexte angeben. Verwenden Sie den szUserSid-Parameter, um den Benutzerkontext der zu suchenden Anwendungen anzugeben.