Gruppenrichtlinie Fehlerereignisse, die protokolliert werden, wenn eine unbekannte Umgebungsvariable verwendet wird

In diesem Artikel können Sie Gruppenrichtlinie Fehlerereignisse vermeiden, die protokolliert werden, wenn eine unbekannte Umgebungsvariable verwendet wird.

Gilt für: Windows Server 2012 R2
Ursprüngliche KB-Nummer: 2003730

Symptome

Wenn Sie eine Active Directory-Gesamtstruktur ausführen und eine Dateisystemsicherheitsrichtlinie verwenden, werden möglicherweise die folgenden Ereignisse protokolliert:

  • Windows Vista, Windows Server 2008, Windows 7 und Windows Server 2008 R2 protokollieren dieses Ereignis im Gruppenrichtlinie Betriebsprotokoll:

    Protokollname: Microsoft-Windows-GroupPolicy/Operational
    Quelle: Microsoft-Windows-GroupPolicy
    Ereignis-ID: 7016
    Aufgabenkategorie: Keine
    Ebene: Fehler
    Schlüsselwörter:
    Benutzer: SYSTEM
    Beschreibung:
    Die Verarbeitung der Sicherheitserweiterung wurde in 20984 Millisekunden abgeschlossen.
    Ereignis-XML:
    <Ereignis xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    ...
    <EventData>
    <Data Name="CSEElaspedTimeInMilliSeconds">20984</Data>
    <Data Name="ErrorCode">1252</Data>
    <Data Name="CSEExtensionName">Security</Data>
    <Data Name="CSEExtensionId">{827D319E-6EAC-11D2-A4EA-00C04F79F83A}</Data>
    </Eventdata>
    </Ereignis>

  • Windows XP und Windows Server 2003 protokollieren dieses Ereignis im Anwendungsprotokoll:

    Ereignis-ID: 1091
    Kategorie: Keine
    Quelle: Userenv
    Typ: Fehler
    Meldung: Die Gruppenrichtlinie clientseitige Erweiterung Sicherheit konnte RSOP-Daten (Resultant Set of Policy) nicht protokollieren. Suchen Sie nach Fehlern, die zuvor von dieser Erweiterung gemeldet wurden.

  • Alle Windows-Versionen protokollieren dieses Ereignis im Anwendungsprotokoll:

    Ereignis-ID: 1202
    Kategorie: Keine
    Quelle: SceCli
    Typ: Warnung
    Meldung: Sicherheitsrichtlinien wurden mit Warnung weitergegeben. 0xd: Die Daten sind ungültig.
    Abhängig von der tatsächlichen Richtlinienkonfiguration sind die Einstellungen in den Sicherheitsrichtlinien möglicherweise vorhanden oder nicht vorhanden. Im Abschnitt Weitere Informationen werden die Bedingungen für Richtlinienfehler oder -erfolg (trotz der Fehler) erläutert.

Ursache

Die Ereignisse werden protokolliert, da die Dateisystemsicherheitseinstellungen einer Richtlinie eine Umgebungsvariable enthalten, die auf dem Clientcomputer unbekannt ist. Um mehr über das Problem zu erfahren, aktivieren Sie die Protokollierung der clientseitigen Erweiterung für die Sicherheitskonfiguration:

Problembehandlung für SCECLI 1202-Ereignisse.

In der Datei %windir%\security\logs\winlogon.log wird ein Eintrag wie folgt angezeigt:

Verarbeiten der GP-Vorlage gpt0000x.inf.

Fehler 13: Die Daten sind ungültig.
Fehler beim Konvertieren von %PROGRAMFILES(X86)%\MyApplication.

%PROGRAMFILES(X86)% ist nur ein Beispiel. Sie wird verwendet, wenn die Richtlinie für eine 64-Bit-Version von Windows bearbeitet wird und Sicherheitseinstellungen für den Ordner C:\PROGRAMME (X86) oder einen seiner Unterordner festgelegt werden.

Die Datei gpt0000x.inf, eine Textdatei mit den Richtlinieneinstellungen, befindet sich im Ordner %windir%\security\templates\policies. Es enthält auch den Speicherort der Richtlinie in Active Directory in der Zeile, die mit GPOPath beginnt, sodass Sie ermitteln können, welche Richtlinie die unbekannte Umgebungsvariable aufweist.

Lösung

Um das Problem zu vermeiden, erstellen Sie eine neue Richtlinie auf der gleichen Ebene, auf der die Einstellungen empfangen werden, die auf die fehlende Umgebungsvariable verweisen. Verwenden Sie dann einen WMI-Filter, damit die Richtlinie nur auf Computer angewendet werden kann, auf denen die Umgebungsvariable definiert ist.

Der WMI-Filter für %PROGRAMFILES(X86)% lautet beispielsweise:

Wählen Sie * aus Win32_Envrionment wobei Name = 'PROGRAMFILES(X86)'

Weitere Informationen

In diesem Abschnitt wird erläutert, warum die Richtlinieneinstellungen in einigen Fällen erfolgreich angewendet werden, in anderen Fällen jedoch nicht.

Die Sicherheitsgruppenrichtlinie wird von der Userenv.dll-Bibliothek gesteuert, die im Winlogon.exe-Prozess oder unter Windows Vista und höher vom Gruppenrichtlinie-Dienst (GPSvc) ausgeführt wird. Dies ist die Komponente, die die Liste der Richtlinien abruft, die dem Computer zugewiesen sind, und diejenigen herausfiltert, die nicht angewendet werden. Sie können basierend auf den Berechtigungen für die Richtlinie oder einem WMI-Filter gefiltert werden.

Userenv/GPSvc sortiert dann die Richtlinien basierend auf ihrer Priorität. Die erste angewendete Richtlinie ist die Richtlinie mit der niedrigsten Priorität, die letzte ist die Richtlinie mit der höchsten Priorität. Als Sicherheitsrichtlinie ruft Userenv/GPSvc die clientseitige Erweiterung der Sicherheitsrichtlinie (SCECLI) mit der von SYSVOL heruntergeladenen Datei für Richtlinieneinstellungen auf.

SCECLI umfasst zwei Phasen. In der ersten Phase werden die an sie übergebenen Einstellungen in die Sicherheitsdatenbank eingespeist. In der zweiten Phase werden diese Einstellungen auf das System angewendet, z. B. Benutzerrechte, Sicherheitsoptionen oder Sicherheitsbeschreibungen für die Registrierung und dateien festgelegt.

Die erste Phase ist aktiv, bis die letzte Richtlinie verarbeitet wird. Der Aufruf von Userenv/GPSvc an SCECLI für die letzte Richtlinie ist ein Sonderfall. Wenn der Aufruf erfolgt, ist die erste Phase noch aktiv, und die Einstellungen aus der letzten Richtlinie werden wie bei allen anderen Richtlinien in die Sicherheitsdatenbank eingelesen. Bevor der Aufruf jedoch zurückgegeben wird, erkennt SCECLI, dass dies die letzte Richtlinie ist, und führt innerhalb desselben Aufrufs die zweite Phase aus.

Die Einstellungen für die Registrierungs- und Dateisystemrichtlinie gelten als teuer beim Commit, SCECLI führt sie nicht im aufrufenden Thread im Vordergrundmodus aus. Für diese Einstellungen würde Userenv/GPSvc einen zusätzlichen Thread erstellen, sodass die Verarbeitung abgeschlossen werden kann, während sich der Benutzer bereits anmelden kann. Domänencontroller sind eine Ausnahme von dieser Regel. Sie würden immer zuerst alle Sicherheitsrichtlinienanwendungen abschließen, bevor sich der Benutzer anmelden kann.

In Bezug auf fehlende Umgebungsvariablen liest SCECLI die Einstellungen in der ersten Phase und tritt ein Fehler auf, wenn die Umgebungsvariable in den tatsächlichen Pfad aufgelöst wird. SCECLI überspringt den Eintrag und fügt der Sicherheitsdatenbank weitere Einstellungen hinzu und gibt später einen Fehler an Userenv/GPSVC zurück.

Wenn das Problem in einer Richtlinie mit Ausnahme der letzten Richtlinie auftritt, behandelt Userenv/GPSVC den Fehler als schwerwiegendes Problem und bricht die Sicherheitsgruppenrichtlinie ab. Daher findet die zweite Phase nie statt. Wenn das Problem in der letzten Richtlinie auftritt, ignoriert SCECLI den Fehler und führt die zweite Phase aus. Userenv/GPSVC bricht die Richtlinienanwendung weiterhin mit einem Fehler ab, aber die Richtlinienverarbeitung wurde zu diesem Zeitpunkt abgeschlossen.

Datensammlung

Wenn Sie Unterstützung vom Microsoft-Support benötigen, sollten Sie die Informationen sammeln, indem Sie die unter Sammeln von Informationen mithilfe von TSS für Gruppenrichtlinie Probleme beschriebenen Schritte ausführen.