Montag, 13. Mai 2013

Der große Group Policy Troubleshooting Guide - Teil 3/3

Teil 1 behandelte vor allem logische Fehler im Umgang mit Gruppenrichtlinien.
Teil 2 befasste sich mit technischen Fehlern und Tools mit denen die Abarbeitung von Richtlinien überprüft werden kann.

Der letzte Teil des GPO Troubleshooting Guides behandelt das Thema "GPO Performance."

Inhalt:
  • Welche Timeouts können beim Abarbeiten von Policies auftreten?
  • Wie lassen sich erhöhte Laufzeiten von Policies erkennen?
  • Welche CSEs können erhöhte Laufzeiten verursachen?
  • Wie wirkt sich das Policy- und AD Design auf die Laufzeit der GPOs aus?
  • Wie wirkt sich Group Policy Loopback auf die Laufzeit der GPOs aus? 
  • Wie wirkt sich die Anzahl der GPOs auf die Laufzeit aus?
Welche Timeouts können auftreten?  
Im Laufe der Gruppenrichtlinienabarbeitung können verschiedene Timeouts auftreten. Da insbesondere bei der synchronen Richtlinienanwendung unendliche Start- und Anmeldezeiten verursacht werden könnten, sind diese Timeouts als Sicherheitsmechanismus anzusehen.

Der 60 Minuten Timeout: 
Diese maximale Zeitspanne lässt sich nicht konfigurieren. Es handelt sich um einen hartcodierten Wert von genau 60 Minuten. Ist eine Client Side Extension nach dieser Zeitspanne mit der Anwendung der Einstellungen nicht fertig, so wechselt die GPO-Engine in den asynchronen Modus. Dies bedeutet nichts anderes, als dass der Start- bzw. Anmeldeprozess fortgeführt wird.
Die restlichen Richtlinien werden (wenn möglich) im Hintergrund abgearbeitet.
Die betreffende CSE wird jedoch nicht beendet, sondern läuft ebenfalls im Hintergrund weiter. 60 Minuten ist ein größzügig bemessener Timeout.
Eine CSE die definitiv in diesen Timeout laufen kann, ist die "Software Installation" CSE. Dauert eine Softwareinstallation länger als 60 Minuten,
so tritt dieses Verhalten ein.

Beim Neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten:
Diese Richtlinie kennen wir bereits aus Teil 2.
Die Beschreibung der Richtlinie lässt vermuten, dass so lange auf das Netzwerk gewartet wird, bis dieses verfügbar ist. Dem ist jedoch nicht so.

Es gilt ein Standard Timeout von 30 Sekunden. Dieser kann mit dieser Richtlinie allerdings geändert werden: 
"Wartezeit für Richtlinienverarbeitung beim Systemstart angeben"
Es kann zusätzlich noch eine separate Policy konfiguriert werden, die die maximale Wartezeit für DirectAccess Verbindungen definiert. Hier ist der Default 60 Sekunden. Leider ist der Name der Policy missverständlich. 

"Wartezeit der Arbeitsbereichskonnektivität für Richtlinienverarbeitung angeben"

Maximale Wartezeit für Gruppenrichtlinienskripts angeben:
Dieser Timeout definiert die maximale Ausführungszeit der Skripte beim Starten, Anmelden, Abmelden und Herunterahren des Computers.
Der Standardwert liegt bei 10 Minuten.
Definiert man eine Wartezeit von 0 Sekunden, so bedeutet dies, unendlich.
Zu beachten ist jedoch, dass die Skripte von keiner CSE ausgeführt werden.
Das bedeutet, der Standard CSE Timeout von 60 Minuten gilt hier nicht.

"Maximale Wartezeit für Gruppenrichtlinienskripts angeben"

Gruppenrichtlinien zur Erkennung von langsamen Verbindungen
Hierbei handelt sich nicht um einen zeitlichen Timeout, sondern vielmehr um eine Bandbreitenmessung. Wird eine langsame Netzwerkverbindung erkannt, so werden Teile der Gruppenrichtlinien nicht angewendet. 
Hierbei handelt es sich um alle Client Side Extensions bei denen der Registrywert "NoSlowLink" auf 0x1 gesetzt wurde.
Dieser Schlüssel befindet sich unter "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions" unterhalb des GUID der jeweiligen CSE


Dies ist das Standardverhalten (Quelle TechNet): 

Richtlinien, die standardmäßig angewendet werden: 
  • Registrierungseinstellungen (aus administrativen Vorlagen) müssen immer angewendet werden – dies kann nicht geändert werden
  • Sicherheitsrichtlinien müssen immer angewendet werden - dies kann nicht geändert werden)
  • EFS-Wiederherstellungsrichtlinie
  • IP-Sicherheit
Richtlinien, die nicht angewendet werden:
  • Anwendungsbereitstellung
  • Skripts
  • Ordnerumleitung
  • Datenträgerkontingente
Alle Verbindungen bei denen eine Bandbreite von weniger 500 KBit/s erkannt wird, gelten standardmäßig als "langsame Verbindung". 
Beeinflusst kann dieser Wert mit dieser Policy werden:
"Gruppenrichtlinien zur Erkennung von langsamen Verbindungen"

Der WMI-Filter Timeout:
Richtlinien können mit WMI Filtern verknüpft werden.
Über die GPO-Performance im Zusammenhang mit WMI-Filtern habe ich bereits in meinem Post "The lies of GPOs! #4" berichtet.
Noch vor Windows Vista (bzw. Server 2008) konnte ein WMI-Filter theoretisch unendlich lange ausgeführt werden. Dies hat man nun mit einem WMI-Timeout unterbunden. Dieser Timeout ist 30 Sekunden und kann nicht geändert werden.

Dauert die Ausführung eines WMI-Filters länger als 30 Sekunden, so wird das Ergebnis mit "false" beantwortet. 
Zwischenzeitlich findet man nun auch auch eine offizielle Erwähnung dieses Timeouts. Den Link hierzu findet ihr hier.

GPP - nicht verfügbare Netzlaufwerke:
Versucht man ein nicht verfügbares Netzlaufwerk mit der Client Side Extension "Drive Maps" zu verbinden, so tritt auch hier ein Timeout auf. 
Dieser liegt ebenfalls bei 30 Sekunden und kann nicht geändert werden.
Möchte man diesen Timeout jedoch umgehen, so kann man Martin Binder's Workaround benutzen.
Mehr dazu findet ihr in seinem Blog-Post über dieses Thema:

http://evilgpo.blogspot.de/2013/01/group-policy-preferences.html
 
Der TCP Standard Timeout
Abschließend sei noch ein Timeout erwähnt, der theoretisch bei unterschiedlichen Sektionen der Gruppenrichtlinienanwendung auftreten kann.

Es handelt sich um den Standard Timeout für TCP/IP Verbindungen.
Dieser Timeout wird von zwei Registryschlüsseln kontrolliert.
Der Schlüssel "TCPInitialRtt" gibt den anfänglichen Timeout an.
Der Schlüssel "TcpMaxDataRetransmissions" gibt dann die Anzahl der Wiederholversuche an. Mit jedem Wiederholversuch wird der Timeout "TCPInitialRtt" dann verdoppelt.
Dieser Timeout ist leider schwer zu erkennen.
Es sollten größere Zeitsprünge im gpsvc.log erkennen zu sein.

Mehr zum Anpassen dieses Timeouts findet ihr hier: http://support.microsoft.com/kb/170359/en-us

Wie lassen sich erhöhte Laufzeiten von Policies erkennen?

Im Eventlog:

Ab Windows Vista lassen sich die Laufzeiten der jeweiligen Client Side Extensions komfortabel im Eventlog ablesen.
Interessieren euch die Laufzeiten der einzelnen Erweiterungen, dann solltet ihr nach Event-ID 5016 suchen.





800x Events zeigen euch die Gesamtlaufzeit der GPO Anwendung.
Dauert die Abarbeitung der jeweiligen CSE ungewöhnlich lange, so wird ein Fehler im Eventlog vermerkt. Die Event-ID ist dann in der Regel die 7016.

Im gpsvc.log:
Das Logfile des Gruppenrichtlinien-Clients muss zunächst aktiviert werden.
Das Logfile lässt sich am komfortabelsten mit dem Policy Reporter auswerten.
Zu beachten ist jedoch, dass nicht alle Ausführungszeiten im Logfile erscheinen.

Die Laufzeiten der Skripte wird zum Beispiel nicht im Logfile erfasst.

In der GPMC und im gpresult /h von Windows 8 und Server 2012:
Über die Funktion "Gruppenrichtlinienergebnisse" können die Laufzeiten der jeweiligen CSEs angezeigt werden.



Mit Hilfe von GPTime.exe
Das Tool GPTime.exe liest die Gesamtlaufzeit der Benutzer- und Computerkonfiguration aus den jeweiligen Registrywerten und konvertiert diese in eine lesbare Zeitangabe.

Welche CSEs können erhöhte Laufzeiten verursachen?
Die Anwendung der Richtlinien besteht aus zwei Anteilen:

Dem "Core Processing":
Hierbei wird bestimmt, welche Richtlinien angewendet werden müssen.
Es werden die Sicherheits- und WMI Filter durchlaufen.
Zudem wird ermittelt welche CSEs registriert sind und welche CSEs aufgerufen werden müssen.
Dem "CSE Processing":
Hierbei werden die eigentlichen Einstellungen angewendet.
Jede zutreffende CSE wird nach ihrer registrierten Reihenfolge ausgeführt
und arbeit die Einstellungen ab.
Die jeweils benötigte Zeitdauer dieser beiden Anteile kann variieren.  

Bei asynchroner Richtlinenverarbeitung gilt:
Bei einem nicht erzwungenen GPO Refresh (z.B. gpupdate) nimmt das Core Processing in der Regel mehr Zeit in Anspruch als das CSE Processing.
Erzwingt man jedoch einen vollständigen Refresh (z.B. gpupdate /force),
so müssen alle Einstellungen erneut angewendet werden.
Hierbei nimmt das CSE Processing in der Regel mehr Zeit in Anspruch. 

Bei synchroner Richtlinenverarbeitung gilt:
Da in diesem Falle auf das Netzwerk gewartet wird, kann das Core Processing mehr Zeit benötigen. Wie lange das CSE Processing dauert, hängt in erster Linie von den Einstellungen in den Richtlinen ab.  
Typische Beispiele für zeitintensive Client Side Extensions:
  • Software Installation CSE
    Je nachdem wieviele und wie umfangreiche Installationen ausgeführt werden, kann diese CSE viel Zeit beanspruchen.
  • Security CSE
    Mit dieser CSE lassen sich unter anderem Datei- und Ordnerberechtigungen setzen. Werden Verzeichnisse mit vielen Dateien bearbeitet, so kann diese CSE sehr viel Zeit in Anspruch nehmen.
  • Scripts CSE
    Hier muss man unterscheiden. Die eigentliche CSE ist sehr schnell abgearbeitet. Hierbei werden nur die Einstellungen in die Registry geschrieben. Die Skripte laufen dann unabhängig von der Richtlinenanwendung beim Starten, Anmelden, Abmelden und Herunterfahren. Sind hier zeitintensive Skripte hinterlegt, so kann auch hier eine hohe Ausführungszeit entstehen.
Der Sonderfall Group Policy Preferences Item Level Targeting:
GPPs (Group Policy Preferences) bieten einem die Möglichkeit eine sogenannte Zielgruppenadressierung (Item Level Targeting) zu verwenden. Mehr dazu auch im Abschnitt "Item Level Targeting - jetzt wird es granular" im Teil 1 des Guides.
Der Sonderfall hierbei ist, dass das Filtern innerhalb des CSE Processings stattfindet. Hier können ebenfalls zeitintensive Filter hinterlegt sein.
Zielgruppenadressierungen die viel Zeit in Anspruch nehmen können:

  • Sicherheitsgruppenziele
    Auf Computerebene kann diese viel Zeit beanspruchen.
    Auf Benutzerebene wird dies lokal ausgeführt und benötigt nur wenig Zeit.
  • LDAP-Abfrage 
  • Domäne
  • Siteziele
  • Organisationseinheit
Tipp:
Eine Liste der Zielgruppenadressierungen findet ihr hier.
Mehr zum Thema ITLs die viel Zeit in Anspruch nehmen können findet ihr hier.
Wie wirkt sich das Policy- und AD Design auf die Laufzeit der GPOs aus?
Bei dem Thema möchte ich vor allem auf MVP Darren Mar-Elia's exzellenten Beitrag hinweisen.
 

Er unterteilt Richtlinien in zwei Kategorien.
"Monolithic and Functional GPOs".


"Monolithic GPOs":
Enthalten Einstellungen aus verschiedenen Gruppenrichtlinienbereichen (z.B. administrative Vorlagen, Sicherheitseinstellungen, Software Installationen).
Da die Versionierung nur pro Computerkonfiguration und Benutzerkonfiguration besteht, so müssen im Zweifelsfalle bei einer Änderung alle Einstellungen erneut angewendet werden. Die Delegierung (Zugriffsrechte) an einzelne Administratoren gestaltet sich hier schwierig, da dies ebenfalls nur pro Richtlinie möglich ist.
Um ein einfaches Beispiel zu nennen:
In einem großen Unternehmen gibt es Administratoren die nur administrative Vorlagen verwalten. Verwendet man nun "Monolithic GPOs", so könnten diese Administratoren mit ihren Zugriffsrechten auch andere Richtlinien Einstellungen (z.B. Skripte) bearbeiten.
"Functional GPOs":

Enthalten Einstellungen aus speziellen Bereichen (z.B. nur administrative Vorlagen). Hierbei besteht das beschriebene Problem mit der Versionierung nicht. Jedoch führt dies unweigerlich zu einer großen Anzahl von Richtlinien. Diese Richtlinien können jedoch aufgrund ihrer Granularität besser an einzelne Administratoren delegiert werden.

Wie wirkt sich Group Policy Loopback auf die Laufzeit der GPOs aus? 
Group Policy Loopback kann in zwei verschiedenen Modi ausgeführt werden,
Merge und Replace.


Loopback Merge:
Hierbei entstehen zwei GPO Durchläufe.
Der erste Durchlauf läuft wie gewohnt ab, die Benutzereinstellungen werden anhand der Position des Benutzerobjekts im Active Directory abgearbeitet.
Ist dieser Prozess abgeschlossen, wird der Suchfilter geändert.
Nun startet ein zweiter Durchlauf, hierbei ist allerdings die Position des Computerobjekts im Active Directory entscheidend.
Zum Verständnis noch einmal, es geht nur um die Anwendung der Benutzereinstellungen. Loopback Merge verdoppelt die Abarbeitungszeit der Richtlinien nahezu. 

Loopback Replace:
Bei Replace ist nur noch die Position des Computerobjekts entscheidend.
Es gibt nur einen Durchlauf. Loopback Replace hat praktisch keine Auswirkungen auf die Abarbeitungszeit der Richtlinien.


Wie wirkt sich die Anzahl der GPOs auf die Laufzeit aus?
Die Antwort ist kurz und knapp: Geringfügig.
Die Anzahl der Richtlinien ist kaum entscheidend. Die Ausführungszeit wird vielmehr von den Einstellungen der Policies und den Filtern, die mit den Policies verknüpft sind, beinflusst.

Dienstag, 23. April 2013

Internet Explorer 10: Goodbye my friend "Internet Explorer-Wartung"

Nachdem der Internet Explorer 10 nun seit geraumer Zeit offiziell zur Verfügung steht, wird ein Problem welches die "Internet Explorer-Wartung" betrifft immer bekannter.

IEM - aus und vorbei
Die "Internet Explorer-Wartung" (IEM = Internet Explorer Maintenance) Erweiterung ist ein Relikt aus alten Zeiten. Leider war diese CSE nie für ihre Zuverlässigkeit bekannt. Mit dem Erscheinen von Windows 8 und Server 2012 wird diese Erweiterung nun offiziell nicht mehr unterstützt. Konfiguriert man unter Windows 8 (oder Server 2012) eine Gruppenrichtlinie, so versucht man vergebens diese Einstellung zu finden.


Dieses Verhalten kann man als "wie erwartet" bezeichnen.

Installiert man allerdings den Internet Explorer 10 auf einem Client der mit den Einstellungen dieser CSE jedoch noch umgehen kann (z.B. Windows 7, Server 2008 R2), so verliert man dort ebenfalls die Option eine Gruppenrichtlinie zu bearbeiten, die Internet Explorer-Wartungs-Einstellungen enthält. Gleiches gilt für die Erzeugung neuer Richtlinien die IEM-Einstellungen enthalten sollen.


Fakten zu IEM + IE 10


Auf Windows 8 und Server 2012,
  • können keine IEM-Einstellungen bearbeitet werden.
  • können keine neue Richtlinien angelegt werden die IEM-Einstellungen enthalten.
  • werden keine Richtlinien angewendet die IEM-Einstellungen enthalten.  
Auf Windows Vista, 7 und Server 2008 R2 mit IE 8 oder IE 9,
  • können IEM-Einstellungen bearbeitet werden.
  • können neue Richtlinien angelegt werden die IEM-Einstellungen enthalten.
  • werden Richtlinien angewendet die IEM-Einstellungen enthalten. 
Auf Windows 7 und Server 2008 R2 mit IE 10,
  • können keine IEM-Einstellungen bearbeitet werden.
  • können keine neue Richtlinien angelegt werden die IEM-Einstellungen enthalten.
  • werden keine Richtlinien angewendet die IEM-Einstellungen enthalten.
  • kann das vorherige Verhalten nur mit der Deinstallation von IE 10 erreicht werden.

Freitag, 19. April 2013

GPOBackup.VBS - einfach, schnell, zuverlässig

Backup ja, aber einfach bitte!
MVP Kollege Martin Binder hat in seinem Blog ein GPO-Backup Skript veröffentlicht. Das Skript ist super einfach zu konfigurieren und bietet einem viele Features, die andere Skripte nicht aufweisen.

Hier eine Übersicht der möglichen Optionen:
cscript GPOBackup.VBS [/CreateShare:0] [/BackupDirectory:] [/BackupShare:] [/ForceBackup] [/RetentionMethod:age|count] [/RetentionCount:] [/L:] [/EventLogName:] [/EventSource:]

Ich kann euch nur raten, richtet euch das Skript ein, lasst es laufen und ihr müsst euch keine Gedanken mehr über das Thema GPO-Backup machen.

Hier der Link zum Blog-Artikel:
http://evilgpo.blogspot.de/2012/12/backup-nur-fur-feiglinge-oder-auch-fur.html

Freitag, 5. April 2013

Der große Group Policy Troubleshooting Guide - Teil 2/3

Nachdem ich euch in Teil 1 des "Group Policy Troubleshooting Guides" bereits die häufigsten logischen Fehler gezeigt habe, geht es nun um technische Fehler.

Folgende Themen werden behandelt:

  • Welche Fehler können auftreten?
  • Wo finde ich GPO-Eventlogs?
  • Welche Logfiles werden geschrieben?
  • Wie kann das Verhalten einzelner CSEs analysiert werden
DNS - Die Grundlage für eine korrekte Richtlinienabarbeitung
Eine funktionierende DNS-Auflösung ist die Grundlage für eine funktionierende Authentifizierung und Anwendung von Gruppenrichtlinien.
Damit der Client einen Domaincontroller finden kann, muss dieser Anfragen an den DNS Server stellen. Im Zuge dieses Prozesses wird ebenfalls die betreffende Active Directory Site des Clients ermittelt.
Den kompletten Vorgang der Ermittlung des Domaincontrollers findet ihr bei Yusuf Dikmenoglu.

Im weiteren Verlauf der Gruppenrichtlinienabarbeitung werden immer wieder LDAP Abfragen an den DC gesendet. Funktioniert die DNS Auflösung nicht oder nur teilweise, so sollte spätestens beim Zugriff auf das SYSVOL Verzeichnis ein Fehler auftreten. Die GPSVC Engine versucht unter anderem das File Gpt.ini aus dem Verzeichnis jeder Policy zu lesen.

Den genauen Prozessablauf findet ihr hier:
http://technet.microsoft.com/en-us/library/cc784268%28v=ws.10%29.aspx

Beliebte Fehler in der DNS Konfiguration
1. Am Client ist der primäre DNS Server kein DC

Ein Fehler der gerade in kleineren Umgebungen häufig zu finden ist.
Dort wird oftmals als primärer DNS am Client ein Internet Router angegeben.

Der Hintergedanke ist wohl meist, dass dieser Router sowohl die lokalen Adressen, als auch die "unbekannten" Adressen des Internets auflösen kann.

Für die Anwendung von Gruppenrichtlinien kann das jedoch fatale Folgen haben. Der DC Locator Process ist auf die sogenannten SRV Records angewiesen.

Diese sind in der Regel auf Microsoft DNS Server vorhanden, jedoch nicht zwangsläufig auf dem DNS Server des Internet Routers.
Fehlen diese SRV Records (dazu auch mehr in 2.), kann auch die Anwendung der Richtlinien fehlschlagen.

 

Deshalb merken:
Als primärer DNS sollte immer ein DC mit DNS Server (oder ein anderer Windows DNS Server) eingetragen werden.

Im optimalen Falle befindet sich dieser in der gleichen AD-Site wie der Client.

 

2. Fehlende DNS Records
Für die Suche des Domaincontrollers sind diverse SRV Records erforderlich.

Fehlt ein Teil oder alle diese Einträge, kann die Anwendung der Gruppenrichtlinien und die Ermittlung des Domaincontrollers fehlschlagen.

Sollten nicht nur einzelne Clients betroffen sein und dessen Client DNS Konfiguration korrekt sein, sollte man die SRV Records auf den Domaincontrollern überprüfen.

Dazu eignen sich folgende Tools:
DNSLint /ad
dcdiag /test:dns

Leider ist dieser genannte Fehler schwer zu diagnostizieren,
deshalb hier noch einige weiterführende Informationen:

http://blogs.technet.com/b/askpfeplat/archive/2012/07/09/the-case-of-the-missing-srv-records.aspx
http://support.microsoft.com/kb/816587/en-us


3. Grundlegende Netzwerkprobleme

Stimmt das Netzwerklayout nicht oder handelt es sich um eine Misskonfiguration auf Netzwerkebene, kann die DNS-Auflösung und somit auch das Abarbeiten der Gruppenrichtlinien fehlschlagen.

Hierzu zählen unter anderem Probleme wie:

  • falsch eingetragene Routen
  • falsche Firewallkonfigurationen
  • nicht erreichbare DNS-Server
  • falsch konfigurierte DNS Reihenfolge
  • fehlende / falsche DNS Suffixe
  • falsch konfigurierte DNS Forwarder
  • falsche VLAN Einstellungen
Replikations- oder AD-Probleme
Technisch betrachtet besteht jede Gruppenrichtlinie aus zwei Teilen.
Gemeint ist hier nicht die Benutzer- und Computerkonfiguration, sondern der Richtlinienanteil im Group Policy Container (GPC) und der Anteil innerhalb des Group Policy Templates (GPT).

GPC - Group Policy Container: 

Innerhalb des GPC werden nicht die einzelnen Einstellungen der Richtlinien gespeichert, sondern viel mehr die "Metadaten" der Richtlinien.
Hier sind Informationen hinterlegt wie:

  • Welche Richtlinien gibt es
  • Wo sind die einzelnen Richtlinien verlinkt
  • Welche Client Side Extensions (CSEs) verwenden die einzelnen Richtlinien
  • Wie lautet der Pfad zum GPT
  • Welche Berechtigungen haben die einzelnen Richtlinien
  • Der GUID jeder Richtlinie
Vereinzelt werden dennoch spezielle Richtlinieneinstellungen innerhalb des GPC gespeichert. Hierzu gehören Einstellungen wie:
  • Wired Network Policies (802.3)
  • Wireless Network Policies (802.11)
  • Deployed Printer Connections
GPT - Group Policy Template:
Hier sind die eigentlichen Einstellungen hinterlegt.
Beim GPT handelt es sich um eine Netzwerkfreigabe namens "SYSVOL".

Pro Richtlinie gibt es jeweils ein Verzeichnis.
Der Verzeichnisname entspricht dem GUID der Richtlinie.

Der GPC und GPT werden unterschiedlich repliziert.
Der GPC wird über die Active Directory Replikation wie alle anderen AD-Objekte repliziert. Die Replikation des GPT übernimmt der FRS (File Replication Service) oder unter Server 2008 (falls konfiguriert) DFS-R.

GPC und GPT besitzen jeweils eine eigene Versionierung.
Stimmt die Versionsnummer der beiden Richtlinienanteile im GPC und GPT nicht überein, so treten Probleme bei der Anwendung der Richtlinie auf.
Zu bedenken ist auch, dass die Replikation unter Umständen einen größeren Zeitraum in Anspruch nehmen kann.
Dies gilt insbesondere für Replikationen die nicht innerhalb einer Active Directory Site stattfinden.


Replikationsprobleme erkennen
Der erste Anhaltspunkt sollte wie so oft die Ereignisanzeige sein.

Ereigniskategorien die ihr unbedingt prüfen solltet:



Weitere Tools um die AD-Funktionalität und Replikation zu überprüfen:

  • dcdiag
    Der Klassiker für die AD-Diagnose.
  • GPOTool
    Das GPOTool ist schon etwas in die Jahre gekommen. Dennoch bietet es noch zuverlässige Dienste. Mit dem GPOTool können die einzelnen Richtlinienversionen auf den verschiedenen Domaincontrollern verglichen werden.
  • Die GPMC von Server 2012 (und Windows 8).
    Hier können nun unter dem Reiter "Status" die Versionsstände verglichen werden.
    (in der Testumgebung des Screenshots gab es nur einen DC, deshalb wird bei beiden Werten "0" angezeigt)



Auf das Netzwerk warten?
Gruppenrichtlinien können im Vordergrund oder im Hintergrund ausgeführt werden. Vereinfacht könnte man es so bezeichnen:

 
Im Vordergrund =
Beim Hochfahren des Rechners
Beim Anmelden Benutzers.

Im Hintergrund =
Zu allen anderen Zeitpunkten werden die Richtlinien "Im Hintergrund" angewendet.

Seit Windows XP beschleunigt eine neue Option names "Fast Logon Optimization" das Booten und Anmelden.
Allerdings hat dies negative Auswirkungen auf die Anwendung von Gruppenrichtlinien. Fast Logon lässt sich mittels dieser Einstellung deaktivieren:


http://gpsearch.azurewebsites.net/#1839


Zusätzlich sollte auch noch das Anmeldeverhalten geändert werden:


http://gpsearch.azurewebsites.net/#2302


(genau genommen beeinflussen sich technisch beide Richtlinieneinstellungen)

Die Deaktivierung der "Fast Logon Optimization" ist eine sinnvolle Sache.
Jedoch kann dies Verzögerungen im Start- und Anmeldeprozess des Rechners verursachen. Bevor die Policies abgearbeitet werden können, arbeitet die GPSVC-Engine mit dem Dienst NLA (Network Location Awareness) zusammen.

Es wird sichergestellt, dass das Netzwerk erfolgreich initialisiert wurde, bevor die Richtlinien abgearbeitet werden.
Treten in diesem Zusammenhang Fehler auf, so sollte nicht einfach die Fast Logon Optimization wieder aktiviert werden, sondern man sollte der Ursache des Problems auf den Grund gehen.


Hierzu können Ursachen gehören wie:

  • Netzwerktreiber die während des Bootvorgangs eine lange Zeit zum Initialisieren benötigen
  • WLAN Verbindungen mit gleichzeitigen LAN Verbindungen die den NLA Dienst beschäftigen
  • Falsch konfigurierte Switche (Portfast nicht aktiviert)
  • Firewalleinstellungen blockieren den Netzwerk-Traffic während des Bootens
Wie kann man feststellen ob Richtlinieneinstellungen angewendet werden?
Ist der Fehler noch nicht im Detail bekannt, sollte man zunächst einmal überprüfen ob der Client die Einstellungen anwendet.
Diese Methode bezieht sich ebenfalls auf die Logikfehler von Teil 1 des Guides.

Die meisten Tools beziehen ihre Daten mittels des RSoP (Resultant Set of Policies). Dieser ermittelt die benötigten Daten per WMI (Windows Management Instrumentation).

Tipp:
Den genauen Prozess findet ihr hier.
Die wichtigsten Tools:
  • rsop.msc - Hierbei handelt es sich um ein MMC-SnapIn, das die Daten des RSoP ermittelt. Rsop.msc ist allerdings nicht auf dem aktuellen technischen Stand. Das SnapIn kann keine Daten der Group Policy Preferences anzeigen. Die Darstellung orientiert sich am Group Policy Editor.
  • gpresult /r - Es handelt sich um ein Kommandozeilentool welches die angewendeten und abgelehnten Richtlinien anzeigt.
  • gpresult /h - Es wird ein html-Bericht generiert. Diese Methode sollte die Standardmethode zum Ermitteln der GPO-Daten sein. Es handelt sich um eine Kombination aus gpresult /r und rsop.msc. Der Vorteil: Hier werden auch Daten der Preferences angezeigt.
  • GPMC - Gruppenrichtlinienergebnisse
  • Die GPMC bietet ebenfalls die Möglichkeit einen RSoP remote zu erstellen.
    Zu beachten ist allerdings, dass hierzu am Client einige Firewallausnahmen definiert werden müssen.
Wo finde ich GPO-Eventlogs?
Die erste Anlaufstelle sollte immer das Eventlog sein.
Die verschiedenen Events finden sich primär in diesen Kategorien:

  • Anwendung (vereinzelt)
  • System 
  • Anwendungs- und Dienstprotokolle > Microsoft > Windows > GroupPolicy (ab Windows Vista verfügbar) Das letzte Log ist hierbei am umfangreichsten:

 

Der Eventviewer von Windows XP und Server 2003 besitzt noch keine Anwendungs- und Dienstprotokolle.
Tipp:
Mehr Informationen findet ihr hier.

Welche Logfiles werden geschrieben?
Zunächst einmal werden keine Logfiles geschrieben. Im Problemfall muss das Logging aktiviert werden.

 

Logging des Gruppenrichtliniendienstes:
Hierbei handelt es sich um das Logfile der GPSVC-Engine.
Dieses Logfile ist als Zusammenfassung der verschiedenen Client Side Extensions zu sehen. Das Logfile ist relativ umfangreich und lässt sich am besten mit dem Tool "Policy Reporter" auswerten.
 

www.sysprosoft.com/policyreporter.shtml  

Das Programm ist kostenlos und wertet unter anderem die Zeitdauer einzelnen Prozessschritte aus.
Tipp:
In meinem Post "Das gpsvc-logging aktivieren" erfahrt ihr wie ihr das Logging aktiviert.

Unter Windows XP und Server 2003 gibt es noch kein gpsvc.log.
Dort lässt sich das userenv-logging aktivieren.
Dieses wird allerdings nicht nur für Fehlerdiagnose der Gruppenrichtlinienanwendung verwendet, sondern hat noch andere Funktionen und lässt sich deshalb schlechter auswerten.
 

Der Policy Reporter kann mit beiden Logdateien umgehen.
 

Fehler beim Anwenden von Sicherheitseinstellungen:
Fehler beim Abarbeiten von Sicherheitseinstellungen (Berechtigungen auf Registry Schlüssel, Dateien, Diensten, Vergabe von Benutzerrechten usw.) werden in einer separaten Logdatei festgehalten.
Das File befindet sich unter %SYSTEMROOT%\security\logs\winlogon.log.


http://support.microsoft.com/kb/324383/de  

Fehler innerhalb der GPMC:
Treten Fehler in der GPMC beim Erstellen oder Ändern von Richtlinien auf, so kann das GPMC-logging aktiviert werden.


http://technet.microsoft.com/en-us/library/cc737379%28v=ws.10%29.aspx
Tipp:
Eine umfangreiche Liste der Logfiles findet ihr hier.

Wie kann das Verhalten einzelner CSEs analysiert werden?
Neben den einzelnen Logfiles (wie oben genannt) werden auch noch Einträge für diverse CSEs im Eventlog geschrieben.




Für die Client Side Extension der Group Policy Preferences können einzelne Logfiles geschrieben werden. Diese nennen sich "Tracing-Files" und können wie folgt aktiviert werden.


http://blogs.technet.com/b/askds/archive/2008/07/18/enabling-group-policy-preferences-debug-logging-using-the-rsat.aspx

Exotische GPO Tools?
Es gibt noch etliche mehr oder weniger bekannte GPO Tools.

Diese können im speziellen Falle hilfreich sein, jedoch würde ich diese Tools nicht überbewerten. Viele dieser Tools werden nicht weiterentwickelt und sind veraltet. 

    • Dcgpofix.exe
      Damit lassen sich die Default Policies der Domäne wiederherstellen.
    • GPMonitor.exe
      Der GPMonitor sammelt Daten über die Anwendung von Richtlinien und kann diese an einer zentralen Stelle im Netzwerk speichern.
    • GPOTool.exe
      Vergleicht die SYSVOL und AD Versionen auf allen DCs.
    • GPLogView
      Kann ab Windows Vista eingesetzt werden. Das Tool sammelt Informationen aus dem Eventlog. Sehr interessant ist auch die Möglichkeit "live" zu loggen. (Option -m)
    • GPMC-Skripte
      Backup, Restore, Importieren, Exportieren uvm.