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/