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? Warum Benutzerkontensteuerung?
So funktioniert UAC So funktioniert UAC
Betrifft die UAC Ihre Anwendung? Betrifft die UAC Ihre Anwendung?
Entwerfen von Anwendungen für Windows Vista Entwerfen von Anwendungen für Windows Vista
Anwendungsbereitstellung und Patching für Standardbenutzer Anwendungsbereitstellung und Patching für Standardbenutzer
Allgemeine Problembehandlung Allgemeine Problembehandlung
Referenzen 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:

  1. 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:

    1. Administratorzugangs-Token-Prüfung.

    2. „Gesamtzugriffs“-Anforderungen in vom System geschützten Verzeichnissen.

    3. Daten in geschützte Verzeichnisse wie zum Beispiel %Programme%, %WinDir% und HKLM\Software schreiben.

  2. Viele Windows-Anwendungen wurden nicht mit dem Konzept der restriktiven Rechtevergabe entwickelt und unterscheiden Benutzer- und Administratorfunktionalität nicht in zwei verschiedene Prozesse.

  3. 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

  4. 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

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.

  1. ShellExecute() ruft CreateProcess() auf.

  2. 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.

  3. CreateProcess() gibt einen Win32-Fehlercode zurück: ERROR_ELEVATION_REQUIRED.

  4. 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.

  1. 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.

  2. 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.

  3. 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:

  1. Schritt 1: Testen Sie Ihre Anwendung auf Anwendungskompatibilität.

  2. Schritt 2:   Klassifizieren Sie Ihre Anwendung als Standardbenutzer-, Administrator-, oder gemischte Benutzeranwendung.

  3. Schritt 3: Überarbeiten Sie die Funktionalität Ihrer Anwendung, sodass UAC-Kompatibilität erzielt wird.

  4. Schritt 4: Überarbeiten Sie die Benutzeroberfläche Ihrer Anwendung, sodass UAC-Kompatibilität erzielt wird

  5. Schritt 5: Überarbeiten Sie den Installer Ihrer Anwendung

  6. Schritt 6: Erstellen und betten Sie ein Anwendungsmanifest in Ihre Anwendung ein.

  7. Schritt 7: Testen Sie Ihre Anwendung.

  8. Schritt 8: Signieren Sie ihre Anwendung mit Authenticode.

  9. 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).