Richtlinien für Pakete

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

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

  • Wenn sie eine Installationskontextbedingung mit einer Aktion in die InstallUISequence-Tabelleeinfing, verwenden Sie eine bedingte Anweisung, die auf der Privileged-Eigenschaft basiert. Verwenden Sie keine Bedingung, die auf der AdminUser-Eigenschaft basiert.
  • Wenn Sie den Installationskontext in die Startbedingungen für die Installation mit einschleusen, verwenden Sie einen benutzerdefinierten Aktionstyp 19 in der Tabelle InstallExecuteSequence, und machen Sie die benutzerdefinierte Aktion von der Privileged-Eigenschaft abhängig. Verwenden Sie keine Aktion in der LaunchCondition-Tabelle mit einer Bedingung, die auf der AdminUser-Eigenschaft oder der Privileged-Eigenschaft basiert.
  • Um die Systemkonfiguration zu lesen oder zu ändern, verwenden Sie eine benutzerdefinierte Aktion für verzögerte Ausführung in der Tabelle InstallExecuteSequence. Verwenden Sie keine benutzerdefinierten Aktionen zur sofortigen Ausführung in der Tabelle InstallUISequence, 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 eingeben.
  • Lassen Sie Bit 3 aus dem Wert der Word Count Summary-Eigenschaft aus, um anzugeben, dass für das Paket erhöhte Rechte erforderlich sind. Schließen Sie dieses Bit nur ein, wenn zum Installieren dieses Pakets keine erhöhten Berechtigungen erforderlich sind.
  • Schließen Sie ein Manifest mit der angeforderten Ausführungsebene der Anwendung ein.
  • Schließen Sie ein Zertifikat in die MsiPatchCertificate-Tabelle des ursprünglichen Pakets ein, und signieren Sie alle Patches mit demselben Zertifikat.
  • Wenn erhöhte Rechte erforderlich sind, um ein Windows Installer-Paket zu installieren, 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 benachrichtigt, wenn er auf die Schaltfläche klickt, wird das UAC-Dialogfeld mit der Anforderung der Administratorautorisierung angezeigt, um die Installation fortsetzen zu können.
  • Legen Sie die MSIDEPLOYMENTCOMPLIANT-Eigenschaft auf 1 fest, um dem Windows-Installer anzugeben, dass das Paket erstellt und getestet wurde, um die UAC in Windows Vista zu erfüllen. Wenn diese Eigenschaft nicht festgelegt ist, bestimmt das Installationsprogramm, ob das Paket dem UAC entspricht.

Außerhalb von Gruppenrichtliniekann die folgende Überprüfung auf UAC-Konformität auf Windows XP verwendet werden.

So überprüfen Sie die UAC-Konformität außerhalb Gruppenrichtlinie

  1. Melden Sie sich beim Computer als Administrator an.

  2. Ankündigung des Pakets für eine Computerinstallation:

    msiexec /jm package.msi

  3. Melden Sie sich vom Computer ab.

  4. Melden Sie sich als Standardbenutzer am Computer an.

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

    msiexec /i package.msi

  6. In den meisten Fällen ist das Paket bei erfolgreicher Installation UAC-kompatibel.

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

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