Freigeben über


Richtlinien für Pakete

Da die Benutzerkontensteuerung (User Account Control, UAC) in Windows Vista während einer Installation Berechtigungen einschränkt, sollten Entwickler von Windows Installer-Paketen nicht davon ausgehen, dass ihre Installation immer Zugriff auf alle Teile des Systems hat.

Ein Installer-Paket, das erfolgreich für Standardbenutzer über Gruppenrichtlinien bereitgestellt werden kann, sollte in den meisten Fällen auch mit UAC in Windows Vista funktionieren. Ausnahmen hierzu können auftreten, wenn die InstallUISequence-Tabelle die LaunchConditions-Aktion enthält oder die LaunchCondition-Tabelle eine Bedingung basierend auf der Privileged-Eigenschaft enthält. Entwickler von Windows Installer-Paketen sollten sich daher an die folgenden Richtlinien halten, um sicherzustellen, dass ihr Paket mit UAC und Windows Vista funktioniert.

  • Wenn Sie eine installation context-Bedingung mit einer Aktion in der InstallUISequence-Tabelle einbeziehen, verwenden Sie eine bedingte Anweisung basierend auf der Privileged-Eigenschaft. Verwenden Sie keine Bedingung basierend auf der AdminUser-Eigenschaft.
  • Wenn Sie den Installationskontext in die Startbedingungen der Installation einbeziehen, verwenden Sie Custom Action Type 19 in der InstallExecuteSequence-Tabelle und machen Sie die benutzerdefinierte Aktion von der Privileged-Eigenschaft abhängig. Verwenden Sie keine Aktion in der LaunchCondition-Tabelle mit einer Bedingung basierend auf der AdminUser-Eigenschaft oder der Privileged-Eigenschaft.
  • Verwenden Sie zum Lesen oder Ändern der Systemkonfiguration eine benutzerdefinierte Aktion mit verzögerter Ausführung in der InstallExecuteSequence-Tabelle. Verwenden Sie keine benutzerdefinierten Aktionen mit sofortiger Ausführung in InstallUISequence-Tabelle, um die Systemkonfiguration zu ändern.
  • Um Teile des Systems zu ändern, die nicht benutzerspezifisch sind, verwenden Sie eine verzögerte benutzerdefinierte Aktion in der InstallExecuteSequence-Tabelle. Sie sollten das msidbCustomActionTypeNoImpersonate-Bit in den benutzerdefinierten Aktionstyp einbeziehen.
  • Lassen Sie Bit 3 aus dem Wert der Word Count Summary-Eigenschaft weg, um anzugeben, dass eine Erhöhung des Paketstatus erforderlich sein kann. Schließen Sie dieses Bit nicht ein, es sei denn, für die Installation dieses Pakets sind keine erhöhten Berechtigungen erforderlich.
  • Fügen Sie ein Manifest mit der angeforderten Ausführungsebene der Anwendung hinzu.
  • Schließen Sie ein Zertifikat in die MsiPatchCertificate-Tabelle des ursprünglichen Pakets ein, und signieren Sie alle Patches mit demselben Zertifikat.
  • Wenn zum Installieren eines Windows Installer-Pakets erhöhte Rechte erforderlich sind, sollte der Autor des Pakets das ElevationShield-Attribut für das PushButton-Steuerelement enthalten, das zum Starten der Installation verwendet wird. Dadurch wird der Benutzer darauf hingewiesen, dass beim Klicken auf die Schaltfläche ein UAC-Dialogfeld angezeigt wird, in dem er zur Fortsetzung der Installation die Administratorberechtigung anfordert.
  • Legen Sie die MSIDEPLOYMENTCOMPLIANT-Eigenschaft auf 1 fest, um dem Windows Installer anzuzeigen, dass das Paket erstellt und getestet wurde, um mit der Benutzerkontensteuerung in Windows Vista kompatibel ist. Wenn diese Eigenschaft nicht festgelegt ist, bestimmt das Installationsprogramm, ob das Paket der UAC entspricht.

Außerhalb der Gruppenrichtlinie kann die folgende Überprüfung auf die UAC-Compliance unter Windows XP verwendet werden.

So überprüfen Sie die UAC-Compliance außerhalb der Gruppenrichtlinie

  1. Melden Sie sich am Computer als Administrator an.

  2. Kündigen Sie das Paket für eine Installation pro Computer an:

    msiexec /jm package.msi

  3. Melden Sie sich vom Computer ab.

  4. Melden Sie sich als Standardbenutzer beim Computer an.

  5. Versuchen Sie, das angekündigte Paket zu installieren:

    msiexec /i package.msi

  6. Wenn die Installation erfolgreich ist, ist das Paket in den meisten Fällen UAC-kompatibel.

  7. Legen Sie die MSIDEPLOYMENTCOMPLIANT-Eigenschaft im Paket auf 1 fest.

  8. Testen Sie die korrekte Installation des Pakets mit Windows Vista.