Verwalten von Installationsquellen

Benutzer und Anwendungen mit Administratorrechten können Netzwerk-, URL- und Medienquellenlisteninformationen für Windows Installer-Anwendungen und Patches auf dem System abrufen und ändern.

Windows Installer 2.0: Nicht unterstützt. Administratoren können Einträge in der Quellliste nicht lesen, neu anordnen oder ersetzen und keine Eigenschaften der Quellliste ändern oder abrufen. Es ist möglich, Netzwerkquellen zu verwalten, aber keine URL- oder Medienquellen. Administratoren können nur Quelllisten für Computeranwendungen oder Anwendungen verwalten, die pro Benutzer für den aktuellen Benutzer installiert sind. Dadurch wird verhindert, dass Administratoren, die versionen vor Windows Installer Version 3.0 verwenden, Quelllisteninformationen für alle Benutzer im System verwalten.

Windows Installer 3.0 und höher: Benutzer und Anwendungen mit Administratorrechten können Quelllisteninformationen für Windows Installer-Anwendungen und -Patches, die auf dem System installiert sind, für alle Benutzer abrufen und ändern. Die Quelllistenfunktionen können verwendet werden, um Quelllisten und Quelllisteneigenschaften für Netzwerk-, URL- und Medienquellen zu verwalten. Das Installationsprogramm kann Quelllisten aus einem externen Prozess neu anordnen.

Benutzer und Anwendungen mit Administratorrechten können die folgenden Arten von Quelllisteninformationen lesen und ändern:

  • Quelllisten für Anwendungen und Patches, die für alle Benutzer auf dem System installiert sind.
  • Quelllisten für Patchquellen, die außerhalb der Anwendungsquellen vorhanden sind.
  • Quelllisten für URL- und Medienquellen, die von Netzwerkquellen getrennt sind.
  • Quelllisteneigenschaften wie MEDIAPACKAGEPATH, DiskPrompt, LastUsedSource, LastUsedType und PackageName.

Die Quelllistenfunktionen können den Umfang der gefundenen Quelllisten einschränken, indem sie den Installationskontext und den Benutzerkontext angeben. Es gibt drei mögliche Installationskontexte: benutzer- (nicht verwaltet), Computer- und benutzerspezifische verwaltete Kontexte. Der Benutzerkontext kann ein bestimmter Benutzer oder alle Benutzer im System sein.

Nichtadministratoren können die Quellliste einer Instanz einer Anwendung oder eines Patches, die im Benutzerkontext (verwaltet oder nicht verwaltet) eines anderen Benutzers vorhanden ist, nicht ändern. Nichtadministratoren können die Quelllisten einer Instanz einer Anwendung oder eines Patches ändern, die in den folgenden Kontexten installiert ist:

Administratoren können jede Quellliste ändern, die ein Nichtadministrator ändern kann. Darüber hinaus können Administratoren und Anwendungen mit Administratorrechten die Quelllisten einer Anwendung oder eines Patches ändern, die in den folgenden Kontexten installiert ist:

  • Computerspezifische Kontext.
  • Ihr eigener benutzerspezifischer (nicht verwalteter) oder ihr eigener benutzerspezifischer verwalteter Kontext.
  • Der benutzerspezifische verwaltete Kontext eines anderen Benutzers.

Hinweis

Benutzer und Anwendungen mit Administratorrechten können die Quellliste einer Instanz einer Anwendung oder eines Patches, die im Benutzerkontext (nicht verwaltet) eines anderen Benutzers installiert ist, nicht ändern.

Verwalten von Netzwerk- und URL-Quellen für Produkte und Patches

Verwenden Sie die MsiSourceListAddSourceEx-Funktion, um die Quellliste der Netzwerk- und URL-Quellen für einen Patch oder eine Anwendung in einem bestimmten Kontext hinzuzufügen oder neu zu anordnen. Verwenden Sie den dwContext-Parameter, um den Installationskontext anzugeben. Verwenden Sie den szUserSid-Parameter, um den Benutzerkontext anzugeben.

Verwenden Sie die MsiSourceListAddSourceEx-Funktion, um eine Quellliste für einen Patch zu erstellen, der noch nicht auf eine Anwendung im angegebenen Kontext angewendet wurde. Dies kann beim Registrieren eines Patches mit erhöhten Rechten nützlich sein. Weitere Informationen zum Registrieren von erhöhten Rechten für einen Patch finden Sie unter Patchen Per-User verwalteten Anwendungen.

Verwenden Sie die MsiSourceListClearSource-Funktion, um eine vorhandene Quelle für eine Anwendung oder einen Patch in einem angegebenen Kontext zu entfernen. Das Entfernen der aktuellen Quelle für eine Anwendung oder einen Patch zwingt das Installationsprogramm, die Quellliste nach einer Quelle zu durchsuchen, wenn das nächste Mal eine Quelle benötigt wird.

Verwenden Sie die MsiSourceListEnumSources-Funktion, um Quellen in der Quellliste eines angegebenen Patches oder einer angegebenen Anwendung aufzählen.

Verwalten von Medienquellen für Produkte und Patches

Verwenden Sie die MsiSourceListAddMediaDisk-Funktion, um die Datenträgerinformationen der Medienquelle einer registrierten Anwendung oder eines registrierten Patches hinzuzufügen oder zu aktualisieren. Jeder Eintrag wird durch eine Datenträger-ID eindeutig identifiziert. Wenn der Datenträger bereits vorhanden ist, wird er mit der neuen Volumebezeichnung und den Eingabeaufforderungswerten des Datenträgers aktualisiert. Wenn der Datenträger nicht vorhanden ist, wird ein neuer Datenträgereintrag mit den neuen Werten erstellt.

Verwenden Sie die MsiSourceListClearMediaDisk-Funktion, um einen vorhandenen registrierten Datenträger unter der Medienquelle für eine Anwendung oder einen Patch in einem bestimmten Kontext zu entfernen.

Verwenden Sie die MsiSourceListEnumMediaDisks-Funktion, um eine Liste der Datenträger zu auflisten, die unter der Medienquelle für eine Anwendung oder einen Patch registriert sind.

Abrufen und Ändern von Quelllisteninformationen

Verwenden Sie die Funktionen MsiSourceListGetInfo und MsiSourceListSetInfo, um Informationen zur Quellliste für eine Anwendung oder einen Patch in einem bestimmten Kontext abzurufen oder zu ändern. Verwenden Sie den dwContext-Parameter, um den Installationskontext anzugeben. Verwenden Sie den szUserSid-Parameter, um den Benutzerkontext anzugeben.

Auf Quelllisteneigenschaften wie MEDIAPACKAGEPATH, DiskPrompt, LastUsedSource, LastUsedType und PackageName kann zugegriffen werden.

Hinweis

Die LastUsedType-Quelllisteneigenschaft kann nur gelesen werden. Sie kann nicht direkt mit der MsiSourceListSetInfo-Funktion festgelegt werden.

Löschen der vollständigen Quellliste oder Erzwingen einer Quellauflösung

Verwenden Sie die MsiSourceListClearAllEx-Funktion, um alle vorhandenen Quellen eines bestimmten Quelltyps für die angegebene Anwendung oder Patchinstanz zu entfernen. Die Patchregistrierung wird auch entfernt, wenn der Patch nicht von einer Anwendung im gleichen Kontext installiert wird. Verwenden Sie den dwContext-Parameter, um den Installationskontext anzugeben. Verwenden Sie den szUserSid-Parameter, um den Benutzerkontext anzugeben.

Verwenden Sie MsiSourceListForceResolutionEx, um den zuletzt verwendeten Quelleintrag für eine Anwendung oder einen Patch im angegebenen Kontext zu löschen. Diese Funktion entfernt die Registrierung der Eigenschaft LastUsedSource. Diese Funktion wirkt sich nicht auf die liste der registrierten Quellen aus. Das Löschen der LastUsedSource-Registrierung zwingt das Installationsprogramm, eine Quellauflösung für die registrierten Quellen zu erstellen, wenn die Quelle das nächste Mal benötigt wird.