Verwalten von Installationsquellen

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

Windows Installer 2.0: Nicht unterstützt. Administratoren können keine Einträge in der Quellliste lesen, neu anordnen oder ersetzen und können keine Quelllisteneigenschaften ä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 Versionen vor Windows Installer Version 3.0 verwenden, Quelllisteninformationen für alle Benutzer im System zu verwalten.

Windows Installer 3.0 und höher: Benutzer und Anwendungen mit Administratorberechtigungen können Quelllisteninformationen für Windows Installer-Anwendungen und Patches 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 Administratorberechtigungen können die folgenden Arten von Quelllisteninformationen lesen und ändern:

  • Quelllisten für Anwendungen und Patches, die für alle Benutzer im System installiert sind.
  • Quelllisten für Patchquellen, die neben den Anwendungsquellen vorhanden sind.
  • Quelllisten für URL- und Medienquellen, die neben Netzwerkquellen vorhanden sind.
  • Quelllisteneigenschaften wie MEDIAPACKAGEPATH, DiskPrompt, LastUsedSource, LastUsedType und PackageName.

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

Nicht administratoren können die Quellliste einer Instanz einer Anwendung oder eines Patchs ändern, die unter dem Kontext eines anderen Benutzers (verwaltet oder nicht verwaltet) vorhanden ist. Nichtadministratoren können die Quelllisten einer Instanz einer Anwendung oder eines Patchs ändern, der unter den folgenden Kontexten installiert ist:

Administratoren können jede Quellliste ändern, die ein Nichtadministrator ändern kann. Darüber hinaus können Administratoren und Anwendungen, die über administrative Berechtigungen verfügen, die Quelllisten einer Anwendung oder eines Patchs ändern, der unter den folgenden Kontexten installiert ist:

  • Kontext pro Computer.
  • Ihr eigener benutzerspezifischer (nicht verwalteter) oder eigener verwalteter Benutzerkontext.
  • Der verwaltete Kontext eines anderen Benutzers.

Hinweis

Benutzer und Anwendungen, die über administrative Berechtigungen verfügen, können die Quellliste einer Anwendung oder eines Patchs, der im Kontext eines anderen Benutzers (nicht verwaltet) installiert ist, nicht ändern.

 

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

Verwenden Sie die MsiSourceListAddSourceEx-Funktion , um die Quellliste von Netzwerk- und URL-Quellen für einen Patch oder eine Anwendung in einem bestimmten Kontext hinzuzufügen oder neu anzuordnen. 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 Patchs nützlich sein, um über erhöhte Berechtigungen zu verfügen. Weitere Informationen zum Registrieren von erhöhten Berechtigungen für einen Patch finden Sie unter Patching Per-User verwalteten Anwendungen.

Verwenden Sie die MsiSourceListClearSource-Funktion , um eine vorhandene Quelle für eine Anwendung oder einen Patch in einem bestimmten Kontext zu entfernen. Durch das Entfernen der aktuellen Quelle für eine Anwendung oder Patch wird das Installationsprogramm gezwungen, die Quellliste für eine Quelle zu durchsuchen, wenn eine Quelle beim nächsten Zeitpunkt erforderlich ist.

Verwenden Sie die MsiSourceListEnumSources-Funktion , um Quellen in der Quellliste eines angegebenen Patchs oder einer angegebenen Anwendung aufzählen zu können.

Verwalten von Medienquellen für Produkte und Patches

Verwenden Sie die MsiSourceListAddMediaDisk-Funktion , um die Datenträgerinformationen der Medienquelle einer registrierten Anwendung oder eines Patchs 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 den neuen Volumebezeichnungs- und Datenträgeraufforderungswerten 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 auflisten zu können, 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.

Quelllisteneigenschaften wie MEDIAPACKAGEPATH, DiskPrompt, LastUsedSource, LastUsedType und PackageName können zugegriffen werden.

Hinweis

Die LastUsedType-Quellliste-Eigenschaft kann nur gelesen werden. Sie kann nicht direkt mithilfe 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 die MsiSourceListForceResolutionEx , um den letzten verwendeten Quelleintrag für eine Anwendung oder einen Patch im angegebenen Kontext zu löschen. Diese Funktion entfernt die Registrierung der Eigenschaft namens LastUsedSource. Diese Funktion wirkt sich nicht auf die registrierte Quellliste aus. Durch das Löschen der LastUsedSource-Registrierung wird das Installationsprogramm gezwungen, eine Quellauflösung gegen die registrierten Quellen auszuführen, wenn die Quelle beim nächsten Mal erforderlich ist.