Freitag, 17. Januar 2014

Group Policy Caching - sinnvoll oder sinnlos?

Microsoft hat unter Windows 8.1 (bzw. Server 2012 R2) eine neue Funktion eingeführt die sich "Policy Caching" nennt.

Microsoft selbst ist jedoch relativ schweigsam wie Group Policy Caching funktioniert und wann es Verwendung findet.

Siehe TechNet:
http://technet.microsoft.com/en-us/library/dn265973.aspx#BKMK_gpresults

Was ist Group Policy Caching?
GPC (Group Policy Caching) ist ein lokaler Zwischenspeicher im Verzeichnis "C:\Windows\system32\grouppolicy\DataStore".

Dieser Speicher wird bei jedem Group Policy Refresh aktualisiert.
Es handelt sich dabei mehr oder weniger um eine Kopie der im SYSVOL befindlichen Daten. Der nächste Policy Zyklus (beim Starten oder Login) verwendet dann evtl. (später mehr dazu) diesen Cache um die Abarbeitungszeit der Richtlinien zu verringern.



Eine Sache ist hier entscheidend:
Der Group Policy Cache ist nur bei der synchronen Richtlinienverarbeitung aktiv!

Den Unterschied zwischen synchroner und asynchroner Richtlinenverarbeitung findet ihr in meinem Blogeintrag "Der große Group Policy Troubleshooting Guide - Teil 3/3 "

Wann wird Group Policy Caching wirklich verwendet?
Genau diese Frage zeigt das große Problem des neuen Features GPC.

Unter folgenden Umständen wird GPC nicht verwendet:
  1. Die Richtlinienverarbeitung ist asynchron
  2. Die Richtlinienverarbeitung ist synchron, jedoch ist die Einstellung "Always wait for network at computer startup and user logon" aktiviert
  3. Die Richtlinienverarbeitung ist synchron, jedoch nur weil der User sich das erste Mal an diesem Gerät anmeldet 
  4. Group Policy Caching ist deaktiviert
  5. Der DC antwortet nicht oder der DC antwortet mit einer Zeitüberschreitung (der Zeitüberschreitungswert wird in der gleichen Policy definiert)
Unter folgenden Umständen wird GPC verwendet:
  1. CSEs, die eine synchrone Verarbeitung erfordern, lösen eine synchrone Verarbeitung aus.

    Windows 8.1 hat nur noch zwei CSEs die eine synchrone Verarbeitung erfordern:
  • Folder Redirection
    • Software Installation
      Die Wahrscheinlichkeit dass der GPC-Mechanismus überhaupt benutzt wird, ist relativ gering. 

      Microsoft macht ebenfalls nicht deutlich, wie das genaue Zusammenspiel zwischen Group Policy Caching und Slow Link Detection funktioniert.

      Der offizielle Hilfetext der Richtlinieneinstellung lässt Folgendes vermuten:
      • Wird der Cache gelesen, so wird der DC kontaktiert
      • Ist diese Antwort außerhalb des Timeouts (bzw. gibt es keine Antwort) so wird die Verarbeitung der Richtlinien abgebrochen und beim nächsten Background-Refresh durchgeführt
      • Das Herunterladen in den Cache wird ebenfalls beschränkt, sobald eine langsame Verbindung erkannt wird. Hier werden jedoch nicht die Einstellungen dieser Policy verwendet, sondern die Einstellungen dieser Policy
      Leider lässt die unvollständige Microsoft-Dokumentation das genaue Verhalten nur vermuten.

      Was sind die Nachteile des Group Policy Caching?
      1. Die Abarbeitungszeit der Hintergrundaktualisierung (auch gpupdate, gpupdate /force) ist deutlich höher, da die Policies in den Cache kopiert werden müssen
      2. Während der Hintergrundaktualisierung wird durch das Caching sehr häufig auf das SYSVOL-Share der DCs zugegriffen
        (siehe auch http://www.grouppolicy.biz/2013/07/windows-8-1-group-policy-update-performance-changes/)
      3. Während des Cachings werden alle Dateien, die sich in diesen Ordner befinden, auf den Client kopiert:

        \\domain.intern\sysvol\domain.intern\Policies\{GUID}\Machine 

        \\domain.intern\sysvol\domain.intern\Policies\{GUID}\User


        Hierbei wird keine Unterscheidung gemacht welche Dateien kopiert werden müssen. Liegen hier aus irgendeinem Grund große Datenmengen, so werden alle Dateien auf den Client kopiert.
      Fazit
      Der Grundgedanke von GPC ist gut. Jedoch findet es in der Praxis kaum Verwendung. Die vielen Außnahmen deaktivieren in der Praxis GPC.

      Das Caching ist gerade im Zusammenhang mit langsamen Netzwerkverbindungen interessant. Allerdings müssen die gesetzten Schwellwerte korrekt sein. Wird ein Schwellwert überschritten, so ist GPC ebenfalls deaktiviert (genauer gesagt wird die ganze Richtlinienverarbeitung abgebrochen).

      Führt man häufig manuelle Policy-Refreshs durch, so sollte man überlegen GPC ggf. zu deaktivieren. 


      weiterführende Informationen:

      http://sdmsoftware.com/group-policy-blog/group-policy/understanding-group-policy-caching-in-windows-8-1/

      http://sdmsoftware.com/group-policy-blog/windows-8-1/clarifying-group-policy-caching-in-windows-8-1/

      Kommentare:

      1. Hey,

        ich habe eine kurze Frage:

        Wenn ich im Gruppenrichtlinienverwaltungs-Editor nach Windows 7 filtere werden mit (natürlich) viele Windows XP Settings nicht mehr angezeigt.
        Wenn ich mir dann aber ein GPRESULT auf einem Windows 7 Rechner ansehe, finde ich dort trotzdem diese eigentlich nicht kompatiblen Richtlinien, welche laut GPRESULT auch erfolgreich angewendet wurden.

        Wer belügt mich jetzt? GPRESULT oder der Gruppenrichtlinien-Editor??

        Danke für eine Rückmeldung.

        AntwortenLöschen
      2. Hallo,

        was da filterst ist rein die Ansicht im Gruppenrichtlinien-Editor.
        Das hat keine Auswirkung auf die Policy selbst.

        Wenn dann musst du WMI Filter verwenden um Policies auszufiltern.

        Schöne Grüße
        Matthias Wolf

        AntwortenLöschen
      3. Danke für die Rückmeldung.

        Aber durch den Filter sehe ich doch, welche Policies auf Windows 7 eine Auswirkung haben, oder nicht? Alle ausgeblendeten Objekte sollten also keinen Einfluss auf Windows 7 Geräte haben. Laut Gpresult werden diese aber eben doch angewendet.

        Oder stehe ich grad auf dem Schlauch? Auch in einem anderen Blog ist es so formuliert:

        "Vorsicht: Die meisten Einstellungen wirken nur auf ältere Betriebssysteme, nicht auf Windows 7. Im Computerteil sind nur 10 von 28 Einstellungen für Windows 7 relevant, im Benutzerteil gar nur 2 von 15.

        Tipp: Setzen Sie einen Filter in der GPMC um nur Einstellungen für Windows 7 anzeigen zu lassen."

        Und genauso habe ich mir das auch gedacht...scheint Windows 7 aber völlig egal zu sein, dass viele Einstellungen nicht für das System gedacht sind.

        Mir geht es um einen Windows 7 Rollout. Ich will Altlasten, also eh nicht mehr wirkende Einstellungen aus den GPOs raushauen - der Übersicht halber.

        AntwortenLöschen
      4. Hallo,

        die Filter im Editor sind nur eine Hilfestellung für den Administrator.
        Jede Einstellung die du in den Administrativen Vorlagen setzen kannst, hat ein "supportedOn" Element. Dieses gibt an, auf welchen diese Einstellung "funktioniert".

        http://abload.de/img/unbenanntqpscl.png

        Leider sind diese supportedOn Eigenschaften nicht immer sauber gepflegt (auch die von Microsoft nicht).
        Dieses supportedOn Element hat keine Auswirkung auf die Verarbeitung der Richtlinien.
        Wie in diesem Beispiel (Screenshot) würde die Einstellung also auch auf einem Windows 7 System gesetzt werden. Windows 7 kennt diese Einstellung allerdings nicht bzw. ignoiert diese Einstellung.

        Wenn du also deine "alten" Richtlinien trennen willst, dann bleiben dir bei den Administrativen Vorlagen nur die WMI-Filter.
        Hier einige Beispiele für WMI-Filter:

        http://evilgpo.blogspot.de/2013_12_01_archive.html

        AntwortenLöschen
        Antworten
        1. Es war gemeint:

          Dieses supportedOn gibt an, auf welchen Systemen diese Einstellung "funktioniert".

          Löschen
      5. Hi,

        danke, genauso habe ich mir ja auch gedacht. Der Filter greift meines Wissens die SupportedOn ab, um zu filtern.

        Nur werden eben laut GPRESULT auch Einstellungen erfolgreich verarbeitet, welche laut SupportedOn "Windows XP only" sind.


        Konkretes Beispiel:
        Administrative Vorlagen -> Netzwerk -> Offlinedateien -->"Benutzerkonfiguration von Offlinedateien nicht zulassen"

        SupportOn: Nur 2000, XP und Server 2003

        Wird laut GPRESULT trotzdem erfolgreich auf dem Windows 7 Rechner angewendet.


        Deshalb meine ursprüngliche Frage :)


        Ich will nicht zwischen XP und 7 trennen, da wir kein XP mehr haben werden. Ich will eben Einstellungen, welche eh ignoriert werden (sollten), aus den GPOs entfernen. Da helfen mir leider keine WMI filter.


        Trotzdem Danke!

        AntwortenLöschen