Windows Vista für Entwickler: Windows Vista Anwendungsentwicklungsanforderungen für die Benutzerkontensteuerung
Veröffentlicht: 13. Nov 2006
Von Microsoft Corporation
Windows Vista für Entwickler enthält Inhalte für Entwickler, sonstige Technologie-Experten und Manager, die an einer vertieften Untersuchung von einigen der neuen und erweiterten Eigenschaften von Windows Vista interessiert sind. Die Reihe wird im Abstand von je etwa zwei Wochen in Form von Artikeln im Windows Vista Developer Center veröffentlicht. Bei diesen Artikeln handelt es sich lediglich um eine Zusammenfassung der Windows-Hilfedatei, die hier heruntergeladen werden kann (möglicherweise in englischer Sprache).
Hinweis Dieser Artikel bildet eine Dokumentation zu einer Softwarevorabversion. Änderungen in zukünftigen Versionen sind vorbehalten.
Hinweis Senden Sie Ihr Feedback zu diesen Artikeln an Vistadev@microsoft.com.
Dieser Artikel enthält Informationen für Anwendungsentwickler, die für die Sicherstellung der Anwendungskompatibilität mit der Benutzerkontensteuerung (UAC) hilfreich sind. Abschnitte in diesem Artikel:
Auf dieser Seite
Warum Benutzerkontensteuerung?
So funktioniert UAC
Betrifft die UAC Ihre Anwendung?
Entwerfen von Anwendungen für Windows Vista
Anwendungsbereitstellung und Patching für Standardbenutzer
Allgemeine Problembehandlung
Referenzen
Hinweis Der gesamte Inhalt dieses Artikels kann in einer Windows-Hilfedatei gefunden werden, die hier heruntergeladen werden kann (möglicherweise in englischer Sprache). Wenn Sie dieses Thema in der Hilfedatei finden möchten, erweitern Sie Grundlagen, Sichere Anwendungen sowie Sichere Anwendungen entwerfen, und klicken dann auf Benutzerkontensteuerung (UAC).
Warum Benutzerkontensteuerung?
Anwendungsentwickler erstellten konsistent Microsoft Windows-Anwendungen, die übermäßig viele Benutzerrechte und Windows-Berechtigungen erforderten, wobei oftmals der ausführende Benutzer ein Administrator sein musste. Aus diesem Grund führten nur wenige Windows-Benutzer die Anwendungen mit den niedrigsten erforderlichen Rechten bzw. Windows-Berechtigungen aus. Viele Unternehmen, die ein Gleichgewicht zwischen einfacher Bereitstellung und einfacher Benutzung einerseits und Sicherheit andererseits anstreben, sind oftmals dazu übergegangen, ihre Desktops wegen Anwendungskompatibilitätsproblemen für Standardbenutzer als Administratoren bereitzustellen.
Die folgende Liste weiterer Gründe führt detailliert auf, warum es schwierig ist, als Standardbenutzer auf Computern vor Microsoft Windows Vista zu arbeiten:
Viele Windows-Anwendungen erfordern, dass der angemeldete Benutzer zwar ein Administrator ist, aber sie erfordern keinen Zugriff auf Administratorebene. Diese Anwendungen führen eine Vielzahl von Administratorzugriffsprüfungen durch, bevor sie ihre Ausführung zulassen:
Administratorzugangs-Token-Prüfung.
„Gesamtzugriffs“-Anforderungen in vom System geschützten Verzeichnissen.
Daten in geschützte Verzeichnisse wie zum Beispiel %Programme%, %WinDir% und HKLM\Software schreiben.
Viele Windows-Anwendungen wurden nicht mit dem Konzept der restriktiven Rechtevergabe entwickelt und unterscheiden Benutzer- und Administratorfunktionalität nicht in zwei verschiedene Prozesse.
Windows 2000 und Windows XP erstellen jeweils standardmäßig einen neuen Benutzer als Administrator; daher funktionieren Schlüsselkomponenten von Windows, wie zum Beispiel die Steuerkonsolen für Datum und Zeit sowie für die Energieverwaltung, für Standardbenutzer nicht gut
Administratoren für Windows 2000 und Windows XP müssen zwei verschiedene Benutzerkonten erstellen: eines für administrative Aufgaben und ein Standardbenutzerkonto zur Durchführung von alltäglichen Aufgaben. Daher müssen die Benutzer ihre Standardbenutzerkonten abmelden und sich als Administrator wieder anmelden, oder sie führen administrative Aufgabe mithilfe des Befehls „Ausführen als“ aus.
Mit der Benutzerkontensteuerung (User Account Control, UAC) stellt Microsoft eine Technologie zur Verfügung, die die Bereitstellung von Standardbenutzer-Desktops vereinfachen soll; im Unternehmen wie auch zu Hause.
Abweichend von einer Windows-Sicherheitsarchitektur, wie sie ursprünglich für das Betriebssystem Microsoft Windows NT 3.1 entworfen worden war, suchte das UAC-Team nach einer Lösung, ein Standardbenutzermodell zu implementieren, das sowohl flexibel als auch sicherer ist. In vorherigen Versionen von Windows wird ein Zugangs-Token für einen Administrator während des Anmeldeprozesses erstellt. Der Zugangs-Token des Administrators enthält die meisten Windows-Berechtigungen und die meisten administrativen Sicherheits-IDs (SIDs). Dieser Zugangs-Token stellt sicher, dass ein Administrator Anwendungen installieren, das Betriebssystem konfigurieren und auf jede Ressource zugreifen kann.
Das UAC-Team ging hinsichtlich des Prozesses der Erstellung von Zugangs-Token in Windows Vista völlig anders vor. Wenn ein Administratorbenutzer sich bei einem Windows Vista-Computer anmeldet, werden zwei Zugangs-Token erstellt: ein gefilterter Zugangs-Token für den Standardbenutzer und ein Zugangs-Token für den vollen Administratorzugriff. Anstatt den Desktop (Explorer.exe) mit dem Zugangs-Token des Administrators zu starten, wird dafür der Zugangs-Token des Standardbenutzers verwendet. Alle untergeordneten Prozesse erben von diesem ersten Start des Desktops (des Prozesses explorer.exe), was zur Verringerung der Angriffsfläche von Windows Vista beiträgt. Standardmäßig melden sich alle Benutzer, einschließlich der Administratoren, als Standardbenutzer bei einem Windows Vista-Computer an.
Hinweis Es gibt eine Ausnahme zu der vorhergehenden Aussage: Gäste melden sich beim Computer mit weniger Rechten und Berechtigungen als Standardbenutzer an.
Wenn ein Administrator versucht, eine administrative Aufgabe, wie zum Beispiel die Installation einer Anwendung, durchzuführen, fordert UAC den Benutzer auf, die Aktion zu genehmigen. Wenn der Benutzer die Aktion genehmigt, wird die Aufgabe mit dem vollständigen Administratorzugangs-Token des Administrators gestartet. Dies ist das Standardaufforderungsverhalten für den Administrator, und es ist im lokalen Sicherheitsrichtlinienmanager-Snap-In (secpol.msc) und in der Gruppenrichtlinie (gpedit.msc) konfigurierbar.
Hinweis Ein Administratorkonto auf einem Windows Vista-Computer mit aktivierter UAC wird auch Administratorkonto im Administratorbestätigungsmodus genannt. Der Administratorbestätigungsmodus identifiziert die Standardbenutzererfahrung für Administratoren.
Jede administrative Erhöhung ist auch prozessspezifisch, was andere Prozesse daran hindert, den Zugangs-Token ohne Aufforderung des Benutzers zur Genehmigung zu verwenden. Dadurch haben Administratorbenutzer eine feiner abgestufte Kontrolle über das, was Anwendungen installieren, wodurch die Arbeit bösartiger Software, die vom angemeldeten Benutzer erwartet, dass er einen Zugangs-Token mit uneingeschränktem Administratorzugriff verwendet, beeinträchtigt wird.
Standardbenutzer haben außerdem Gelegenheit, die Berechtigungsstufe jederzeit zu erweitern und administrative Aufgaben mit Hilfe der UAC-Infrastruktur durchzuführen. Wenn ein Standardbenutzer versucht, eine administrative Aufgabe auszuführen, fordert UAC den Benutzer auf, die gültigen Anmeldeinformationen für ein Administratorkonto zu erbringen. Dies ist das Aufforderungsverhalten für den Standardbenutzer, und es ist im lokalen Sicherheitsrichtlinienmanager-Snap-In (secpol.msc) und in der Gruppenrichtlinie (gpedit.msc) konfigurierbar.
Windows Vista-Updates
Die folgenden Updates reflektieren die wichtigsten kumulativen Änderungen der Funktionalitäten, die in Windows Vista implementiert wurden.
UAC ist standardmäßig aktiviert
Alle nachfolgenden Benutzerkonten werden als Standardbenutzer erstellt
Erweiterungsaufforderungen werden standardmäßig auf dem sicheren Desktop angezeigt
Erweiterungsaufforderungen für Hintergrundanwendungen werden in der Taskleiste minimiert
Erweiterungen werden im Anmeldepfad des Benutzers gesperrt
Das integrierte Administratorkonto wird standardmäßig bei neuen Installationen deaktiviert
Benutzerkontensteuerung und Remote-Szenarien
Neue Standardeinstellungen für die Access Control List (ACL, Zugriffssteuerungsliste)
Detaillierte Informationen zu den oben aufgeführten Windows Vista Updates können Sie in der Windows-Hilfedatei finden, die hier heruntergeladen werden kann (möglicherweise in englischer Sprache).
So funktioniert UAC
Dieser Abschnitt beschreibt die architekturbezogenen und funktionalen Komponenten von UAC für Anwendungsentwickler und schließt die Themen Neue Technologien für Windows Vista und UAC-Architektur ein.
Neue Technologien für Windows Vista
Die folgenden Abschnitte beschreiben die neuen Technologien für Windows Vista im Detail.
Installererkennung
Standardbenutzer-Patching mit Windows Installer 4.0
User Interface Privilege Isolation
Virtualisierung
Detaillierte Informationen zu neuen Technologien für Windows Vista und Änderungen der Zugangs-Token können Sie im Abschnitt „Neue Technologien“ der Windows-Hilfedatei finden, die hier zum Download bereitsteht (möglicherweise in englischer Sprache).
UAC-Architektur
Das folgende Diagramm stellt den Prozessfluss für ausführbare Programmstarts in Windows Vista dar.
UAC-Architektur
Im Folgenden finden Sie eine Beschreibung des im UAC-Architekturdiagramm angezeigten Prozessflusses und die Art der Implementierung von UAC, wenn der Start eines ausführbaren Programms versucht wird.
Startpfad für Standardbenutzer
Der Startpfad für Standardbenutzer in Windows Vista ähnelt dem Startpfad in Windows XP, enthält aber auch einige Änderungen.
ShellExecute() ruft CreateProcess() auf.
CreateProcess() ruft AppCompat, Fusion und die Installererkennung auf, um festzustellen, ob die Berechtigungsstufe für die Anwendung erhöht werden muss. Die ausführbare Datei wird dann untersucht, um ihre requestedExecutionLevel zu bestimmen, die im Anwendungsmanifest der ausführbaren Datei gespeichert ist. Die Datenbank AppCompat speichert Informationen zu den Fehlerbehebungseinträgen der Anwendungskompatibilität bei einer Anwendung. Die Installererkennung entdeckt ausführbare Setupdateien.
CreateProcess() gibt einen Win32-Fehlercode zurück: ERROR_ELEVATION_REQUIRED.
ShellExecute() sucht speziell nach diesem neuen Fehler und ruft bei dessen Erhalt den Application Information Service (AIS) auf, um den Start mit erweiterter Berechtigung zu versuchen.
Startpfad mit erweiterter Berechtigung
Der Startpfad mit erweiterter Berechtigung von Windows Vista ist der neue Windows-Startpfad.
AIS erhält den Aufruf von ShellExecute() und wertet die angeforderte Ausführungsebene und Gruppenrichtlinie neu aus, um festzustellen, ob die Berechtigungserweiterung erlaubt ist und die Erweiterungsbenutzererfahrung zu definieren.
Wenn die angeforderte Ausführungsebene eine Berechtigungserweiterung erfordert, startet der Service die Erweiterungsaufforderung auf dem interaktiven Desktop des Aufrufenden (basierend auf den Gruppenrichtlinien) unter Verwendung des von ShellExecute() übergebenen HWND.
Nachdem der Benutzer Zustimmung bzw. gültige Anmeldeinformationen gegeben hat, ruft AIS den entsprechenden mit dem richtigen Benutzer verknüpften Zugangs-Token auf, sofern erforderlich. Eine Anwendung, die beispielsweise die höchste verfügbare Ausführungsebene anfordert (requestedExecutionLevel = highestAvailable), ruft für einen Benutzer, der im Gegensatz zur lokalen Administratorgruppe nur Mitglied einer Sicherungsoperatoren-Gruppe ist, verschiedene Zugangs-Token auf.
AIS sendet einen neuen CreateProcessAsUser()-Aufruf, liefert den Administratorzugangs-Token und gibt den interaktiven Desktop des Aufrufenden an.
Betrifft die UAC Ihre Anwendung?
Ob Ihre Anwendung von UAC betroffen ist oder nicht, hängt vom aktuellen Zustand der Anwendung ab. In einer Reihe von Fällen sind keine Änderungen dafür erforderlich, die Sicherheitsanforderungen von Microsoft Windows® einzuhalten. Bei einigen Anwendungen jedoch, wie z. B. Geschäftsanwendungen (Line of Business, LOB), sind möglicherweise Änderungen der Installations-, Funktions- und Update-Prozesse erforderlich, damit sie in einer Windows Vista UAC-Umgebung ordnungsgemäß funktionieren.
Hinweis Wenn eine Anwendung für einen Standardbenutzer unter Windows XP gut funktioniert, dann wird sie für einen STANDARD-Benutzer unter Windows Vista ebenfalls gut funktionieren.
Weitere Informationen zu diesem Thema finden Sie in den folgenden Unterabschnitten in der Windows-Hilfedatei, die hier zum Download bereitstehen (möglicherweise in englischer Sprache).
Warum müssen die administrativen Abhängigkeiten einer Anwendung entfernt werden?
Reduzieren der Betriebskosten Ihrer Anwendung
Wie kann man feststellen, ob eine Anwendung administrative Abhängigkeiten hat?
Wie lauten die Anforderungen, wenn man eine legitime Administratoranwendung hat?
Entwerfen von Anwendungen für Windows Vista
Die folgende Liste repräsentiert einen Workflow für den Entwurf Ihrer Anwendung für Windows Vista:
Schritt 1: Testen Sie Ihre Anwendung auf Anwendungskompatibilität.
Schritt 2: Klassifizieren Sie Ihre Anwendung als Standardbenutzer-, Administrator-, oder gemischte Benutzeranwendung.
Schritt 3: Überarbeiten Sie die Funktionalität Ihrer Anwendung, sodass UAC-Kompatibilität erzielt wird.
Schritt 4: Überarbeiten Sie die Benutzeroberfläche Ihrer Anwendung, sodass UAC-Kompatibilität erzielt wird
Schritt 5: Überarbeiten Sie den Installer Ihrer Anwendung
Schritt 6: Erstellen und betten Sie ein Anwendungsmanifest in Ihre Anwendung ein.
Schritt 7: Testen Sie Ihre Anwendung.
Schritt 8: Signieren Sie ihre Anwendung mit Authenticode.
Schritt 9: Nehmen Sie am Windows Vista Logo-Programm teil.
Viele der oben aufgelisteten Schritte liefern Fall- und Codebeispiele für Entwickler. Detailliertere Informationen zu den oben aufgelisteten Schritten können in der Windows-Hilfedatei gefunden werden, die hier zum Download bereitsteht (möglicherweise in englischer Sprache).
Anwendungsbereitstellung und Patching für Standardbenutzer
Unternehmen müssen im Allgemeinen darüber nachdenken, wie sie auf automatisierte Art und Weise Anwendungen auf den Desktops ihrer Benutzer installieren und dadurch administrative Kosten sparen. Für dieses Problem existieren zwei fundamentale Aspekte; erstens, wie diese Anwendungen zur Bereitstellung gepackt werden, und zweitens, welche Technologie zur Bereitstellung verwendet werden soll. Im Fall von kleineren Firmenumgebungen ist möglicherweise ein robuster automatisierter Bereitstellungsmechanismus nicht erforderlich. Detailliertere Informationen zu Bereitstellung und Patching von Anwendungen für Standardbenutzer können in der Windows-Hilfedatei gefunden werden, die hier zum Download bereitsteht (möglicherweise in englischer Sprache).
Allgemeine Problembehandlung
Die folgenden Abschnitte enthalten detaillierte Informationen zu allgemeinen Problemen, die für Anwendungen unter Windows Vista angetroffen wurden.
Zu den allgemeinen Problemen gehören:
ActiveX-Installationsprobleme
ActiveX-Dokumente werden nicht installiert
Anwendung, Framework oder Add-in erforderlich
Administrative Berechtigung für Installation/Patching erforderlich
Benutzerdefinierte Einstellungsspeicherorte für Anwendungen
UAC/DR-Anwendungsstandardwerte für das Speichern in einem geschützten Verzeichnis
Detailliertere Informationen finden Sie im Abschnitt „Allgemeine Problembehandlung“ der Windows-Hilfedatei, die hier zum Download bereitsteht (möglicherweise in englischer Sprache).
Referenzen
Dieser Abschnitt enthält Referenzen zur Virtualisierung und zu den Sicherheitseinstellungen.
Detailliertere Informationen finden Sie im Abschnitt „Referenzen“ der Windows-Hilfedatei.
Hinweis Der gesamte Inhalt dieses Artikels kann in einer Windows-Hilfedatei gefunden werden, die hier zum Download bereitsteht (möglicherweise in englischer Sprache). Wenn Sie dieses Thema in der Hilfedatei finden möchten, erweitern Sie Grundlagen, Sichere Anwendungen sowie Sichere Anwendungen entwerfen, und klicken dann auf Benutzerkontensteuerung (UAC).