Windows Installer-Bereitstellung unter Windows Vista
Aktualisiert: November 2007
Windows Installer-Technologie unterstützt die Softwareinstallation unter Windows Vista. Dem Endbenutzer, der Anwendungen unter Windows Vista installiert, sollte bei jeder Komponenteninstallation, für die erhöhte Rechte erforderlich sind, eine Aufforderung angezeigt werden, auch wenn auf dem Computer die Benutzerkontensteuerung (User Account Control, UAC) aktiviert ist. Informationen zum Einrichten der Benutzerkontensteuerung finden Sie unter Windows Vista und Visual Studio.
Erhöhte Rechte für Anwendungen
In der Regel wird Setup.exe (auch als Bootstrapper bezeichnet) nicht mit erhöhten Rechten, sondern auf der Berechtigungsebene des aktuellen Benutzers ausgeführt. Deshalb wird bei der Installation der endgültigen Anwendung keine Aufforderung zum Ausführen mit erhöhten Rechten angezeigt. Beachten Sie jedoch, dass dem Benutzer bei Verwendung einer MSI-Datei in der Regel eine Aufforderung angezeigt wird, bei Verwendung von Setup.exe hingegen nicht.
In dem eingebetteten UAC-Manifest des Bootstrappers gibt der requestedExecutionLevel-Knoten an, dass die Installation unter dem aktuellen Benutzerkonto (asInvoker) ausgeführt wird:
<requestedExecutionLevel level="asInvoker" />
Falls erforderlich, können Sie die Rechte der Anwendungsinstallation jedoch erhöhen. Zum Ändern von IIS-Einstellungen (Internet Information Services, Internetinformationsdienste) in einem Websetup-Projekt oder zum Installieren von Assemblys im globalen Assemblycache (GAC) sind beispielsweise Administratorrechte erforderlich. Die Eingabeaufforderung für erhöhte Rechte wird nach der Installation der erforderlichen Komponenten, jedoch vor der Installation der Anwendung angezeigt.
Zum Erhöhen der Berechtigungen für eine Installation öffnen Sie die Projektdatei (VDPROJ-Datei). Legen Sie im Abschnitt MsiBootstrapper der Projektdatei für die RequiresElevation-Eigenschaft den Wert True fest. Diese Eigenschaft ist in der integrierten Entwicklungsumgebung von Visual Studio (IDE) nicht verfügbar. Sie müssen daher die Projektdatei verwenden. Weitere Informationen finden Sie unter RequiresElevation-Eigenschaft.
Erhöhen von Rechten unter Einbeziehung des Administrators
Unter Windows Vista wird das Erhöhen von Rechten unter Einbeziehung des Administrators von Windows Installer unterstützt. In diesem Szenario wird der Benutzer zur Eingabe von Administrator-Anmeldeinformationen aufgefordert, und der Administrator gibt das Kennwort für den Benutzer ein. Zur Unterstützung dieses Szenarios legt der Bootstrapper für die AdminUser-Eigenschaft den Wert True fest, wenn Windows Vista oder eine höhere Version von Windows auf dem Computer ausgeführt wird.
Hinweis: |
---|
Wenn Windows Vista auf einem Computer ohne aktivierte Benutzerkontensteuerung ausgeführt wird, und Sie nicht Administrator sind, wird AdminUser dennoch auf True festgelegt. Deshalb sollten EXE-Installationsprogramme (z. B. SQLExpress32.exe) geschrieben werden, um entsprechende Berechtigungen zu ermitteln und im Fall nicht ausreichender Berechtigungen einen speziellen Exitcode zu generieren. Setup.exe sollte so geschrieben werden, dass dieser Exitcode abgefangen und die Meldung anzeigt wird, dass ein Administrator erforderlich ist. |
Erhöhte Rechte für erforderliche Komponenten
Wenn erforderlich, erhöht Windows Vista die Rechte zur Installation erforderlicher Komponenten. Der Bootstrapper selbst führt keine Rechteerhöhung aus. Wenn Windows Vista mit aktivierter Benutzerkontensteuerung ausgeführt wird, zeigt es bei jeder erforderlichen Komponente, die noch nicht installiert ist und erhöhte Rechte benötigt, eine entsprechende Aufforderung an. Wenn die Erhöhung von Rechten für ein Paket fehlschlägt, wird der Bootstrapper mit einer entsprechenden Fehlermeldung beendet.
Erhöhte Rechte für eine benutzerdefinierte Aktion
Benutzerdefinierte Aktionen, die Sie im Editor für benutzerdefinierte Aktionen erstellen, werden mit erhöhten Rechten ausgeführt. Benutzerdefinierte Aktionen sollten nicht auf benutzerspezifische Daten zugreifen (z. B. die Registrierung oder das Dateisystem), da die benutzerdefinierte Aktion nicht unter dem Konto des aufrufenden Benutzers ausgeführt wird.
In der Standardeinstellung werden benutzerdefinierte Aktionen mit erhöhten Rechten ausgeführt, da für die NoImpersonate-Eigenschaft im Editor für benutzerdefinierte Aktionen standardmäßig True festgelegt ist. Wenn NoImpersonate auf False geändert wird, muss die benutzerdefinierte Aktion unter der Identität des aufrufenden Benutzers ausgeführt werden, der möglicherweise über niedrigere Berechtigungen verfügt.
Unterschiede zwischen einzelnen Versionen von Visual Studio
Beachten Sie auch, dass es beim Ausführen von Visual Studio 2005- und Visual Studio 2008-Setupprojekten mit aktivierter Windows Vista-Benutzerkontensteuerung Unterschiede gibt.
Die in Windows Vista integrierte Installationsprogrammerkennung fordert den Benutzer bei aktivierter Benutzerkontensteuerung zur Bestätigung auf. Ein mit Visual Studio 2005 erstellter Bootstrapper (Setup.exe) fordert den Benutzer stets zur Bestätigung auf, unabhängig von den zu installierenden Komponenten. Da unter Windows Vista Setup.exe und alle zugehörigen Prozesse mit einem Administratortoken ausgeführt werden, wird die Installation der endgültigen Anwendung mit erhöhten Rechten ausgeführt. Wenn ein Benutzer Setup.exe mit erhöhten Rechten unter Einbeziehung des Administrators ausführt, wird die Anwendung unter dem Profil des Benutzers mit erhöhten Rechten (nicht unter dem Profil des Administrators) installiert.
In Visual Studio 2008 verhält sich Setup.exe anders. Beim Start wird der Benutzer nicht zur Bestätigung einer Rechteerhöhung aufgefordert. Zum Unterbinden der Aufforderung zur Bestätigung der Rechteerhöhung wird im eingebetteten Manifest des Bootstrappers angegeben, dass Setup.exe auf der angeforderten Ausführungsebene asInvoker ausgeführt wird. Dies bietet den Vorteil, dass die Installation der endgültigen Anwendung nicht mit erhöhten Rechten ausgeführt wird, erforderliche Komponenten bei Bedarf jedoch weiterhin mit erhöhten Rechten installiert werden können. Der Bootstrapper ruft ShellExecute auf, um erforderliche Komponenten zu starten. Windows Vista empfängt diesen Aufruf, führt die Installationserkennung aus, und zeigt vor der Installation eine Benutzereingabeaufforderung an.
Der Nachteil dieser Änderung besteht darin, dass außer für die Anwendung selbst auch für jede zu installierende erforderliche Komponente eine Aufforderung angezeigt wird. Wenn jedoch alle erforderlichen Komponenten bereits auf dem Computer vorhanden sind, sollten bei Installation keine Eingabeaufforderungen angezeigt werden. Weiterhin sollten keine externen Überprüfungen ausgeführt werden, die eine Erhöhung von Rechten erfordern. Externe Überprüfungen können zwar ausgeführt werden, dem Benutzer werden jedoch neben den Eingabeaufforderungen des Installationsprogramms mehrere Aufforderungen zur Bestätigung der erhöhten Rechte für jede der externen Überprüfungen angezeigt.
Siehe auch
Konzepte
Windows Installer-Bereitstellung unter Windows Vista
Windows Vista und Visual Studio
Benutzerrechte und Visual Studio