TechEd Europe 2009: Tag 4

Der vorletzte Tag der TechEd stand für mich größtenteils im Zeichen des “Auffrischens von Themen”. So ist ein Teil des “daily business” bei uns im Domain Team das Thema “Gruppenrichtlinien”, so daß die drei angebotenen Sessions rund um diesen Bereich sicher nicht verkehrt waren. Es gab zwar für mich persönlich zwar nichts neues zu erfahren, aber es war angenehm, Michael Kleef einmal persönlich kennenzulernen – denn er ist als Program Manager einer unserer Ansprechpartner in den USA zu diesen Themengebieten (für Produktänderungen im Allgemeinen, “design change requests” oder bei “code defects”).

<schleichwerbung>
Ein Kollege und ich halten übrigens zu den Themen “Gruppenrichtlinien”, “GPO Troubleshooting” und “AGPM” auch Workshops – sollte also daran Interesse bestehen, einfach mal beim TAM nachfragen; Premier Vertrag bei uns vorausgesetzt.
</schleichwerbung>

Group Policy Changes for Windows 7 and Windows Server 2008 R2

Wie der Titel vermuten läßt ging es im Beitrag um die Darstellung der neuen GPO-relevanten Funktionen in Windows 7 respektive Windows Server 2008 R2.

Angefangen wurde mit den Änderungen in der technischen Implementierung seit Vista, nämlich daß die Gruppenrichtlinien nun nicht mehr im Winlogon-Kontext laufen, sondern einen eigenen Dienst “spendiert” bekommen haben und nun auch bei Gruppenrichtlinien seit der Network Location Awareness (NLA) eine neue Rolle spielt (so werden GPOs nun etwa nicht mehr nur zyklisch abgearbeitet, sondern auch beim Ändern des Netzwerkprofils, z.B. von “public” auf “domain”).

Danach ging es weiter mit den “Features” (schon in Vista vorhanden), einige davon sind:

  • in Vista ca. 800 neue GPO-Einstellungen dazu gekommen, in Windows 7 noch einmal 300 (sehr viel davon Internet Explorer Administrative Templates)
  • das Format der Administrative Templates Vorlagedateien hat sich von ADM auf ADMX + ADML geändert, damit sind eine ganze Menge Vorteile verbunden, so etwa Sprachunabhängigkeit
  • ADMX / ADML central store
  • SYSVOL DFSR Replikation
  • multiple lokale GPOs

In Windows 7 kamen dann noch zusätzliche Funktionen dazu, beispielsweise:

  • PowerShell CMDlets für GPO Operationen (einige der GPMC Operationen wie Backup / Restore, Bearbeitung von Registry Settings, Verlinkungen, ACL-Änderungen usw.)
  • PowerShell Support für Logon- und Startup-Scripts
  • Starter-GPOs mit Sicherheitsvorlagen sind nun schon integriert und müssen nicht erst importiert werden (O-Ton: testen, testen, testen)
  • ADMX-Verbesserungen
  • UI Verbesserungen in GPEDIT.MSC
  • neue Wireless Einstellungen
  • Audit Policy Group Policy Support, d.h. es muß nicht mehr wie noch unter Vista “auditpol.exe” für Sub-Kategorien der Überwachung genutzt werden
  • GPP-Verbesserungen und Erweiterungen, so etwa bei den Scheduled Tasks, Power Plan Settings –> hier kam der Hinweis, daß diese Verbesserungen in Vista erst voraussichtlich Ende des Jahres mit einem CSE Update verfügbar sein werden

CLI312_Kleef[1]

Als generelle Empfehlung wurde dann noch mehrfach angemerkt, im Domänen Modus Windows Server 2008 DFSR als SYSVOL Replikationslösung einzusetzen und FRS abzulösen (viele der Probleme, die wir im GPO-Bereich sehen, sind direkt oder indirekt Folge von SYSVOL-Replikationsproblemen im weitesten Sinne) und nicht tausende von GPOs in einer Umgebung einzusetzen. Stichwort hier: Konsolidieren!

Möchte man in einer Umgebung Windows 7 mit den neuen Policies einsetzen, sollte man vorher die Kompatibilität der neuen Einstellungen mit anderen eingesetzten Betriebssystemen prüfen – eine Übersicht gibt es als Excel Datei.

Troubleshooting Group Policy

Um im Problemfall den richtigen Ansatz zu finden, warum Gruppenrichtlinien nicht greifen oder bestimmte Einstellungen scheinbar nicht am Client ankommen, muß man in vielen Fällen das Design von Gruppenrichtlinien verstehen.

Daher wurde zuallererst der Unterschied zwischen Core-Processing und CSE-Processing erläutert. Im Core-Processing werden alle Aufgaben durchgeführt, die notwendig sind um festzustellen, welche Gruppenrichtlinien anzuwenden sind und welche Komponenten (Client Side Extensions (CSE)) aufzurufen sind:

CLI406_Kleef

Erst danach startet dann die CSE Abarbeitung, die dann dafür sorgt, daß die Komponenten konfiguriert werden, also etwa Explorer-Einstellungen, IE-Einstellungen, Registry-Werte etc. Einen wichtigen Punkt bei dieser Abarbeitung beschreibt der folgende Artikel: https://blogs.technet.com/deds/archive/2009/05/15/prioritaet-group-policy-objects-vs-group-policy-preferences.aspx

Nun muß man also erst einmal entscheiden, was genau man denn nun eigentlich prüft: Das Core Processing oder das CSE Processing. Für das Core Processing stehen Tools wie “Ultrasound”, “GPOTOOL”, "die Ereignisprotokolle + GPOLOGVIEW, GPMC und GPMC RSOP Group Policy Results zur Verfügung, das USerEnv bzw. GPSVC Logging (und viele mehr) zur Verfügung. Das CSE Processing erfordert dann neben GPMC und den Ereignisprotokollen eigene Logs pro Komponente. Die Group Policy Preferences bringen eigene Logs mit, die sehr übersichtlich gehalten sind und die Fehlersuche stark vereinfachen können.

Das zu verinnerlichen ist die halbe Miete bei der Problemsuche. Danach sind die erforderlichen Tools und Logs schnell gefunden. Nur interpretieren muß man die Angaben dann noch selbst (und wenn möglich natürlich auch richtig ;-) …).

Microsoft Desktop Optimization Pack: Managing GPOs with Advanced Group Policy Management (AGPM) 4.0

Grundsätzlich ist AGPM dafür gedacht, die Verwaltung von Gruppenrichtlinien in Prozesse zu gießen und vor allen Dingen die Editoren, Prüfer und freigebenden Instanzen zu organisieren. Dies ist mit Boardmitteln und der GPMC nicht so einfach möglich – diese Lücke schließt AGPM. So können nun dedizierte Mitarbeiter Veränderungen an Richtlinien durchführen, ohne daß diese gleich live geschaltet werden – erst nach Freigabe durch eine andere Instanz werden die Einstellungen ausgerollt.

Zusätzlich ist das ganze noch in einer Historie dokumentiert, so daß sich der Zeitpunkt der Änderung als auch derjenige bestimmen läßt, der die Änderung durchgeführt hat. Weiterhin kann man über Differenzreporte dann prüfen, was sich geändert hat – und das nicht nur innerhalb einer Policy; die Differenzen lassen sich auch über verschiedene Policies anzeigen.

Mit AGPM 4.0 kommen nun die Funktionen “Suche” von GPOs, Multi-Forest Support und Windows 7 / 2008 R2 Support dazu.

Insbesondere wenn Themen wie gute Verwaltbarkeit von GPOs, Delegierung von GPO-Berechtigungen, Prüfvorschriften vor Rollout, Change Management, Import / Export aus Test und Produktivforest, ITIL oder ISO usw. im Unternehmen eine Rolle spielen, dann sollte man einen Blick auf AGPM werfen. Folgende Screencasts geben einen wie ich finde guten Überblick (Silverlight benötigt), Quelle:

Windows Performance Troubleshooting and Analysis

Daniel Pearson gab einen guten Überblick über verschiedene Tools zum Performance Troubleshooting. Schaut man sich ein potentielles Problem oder eine Fragestellung in dieser Richtung an, dann ist auch hier einer der wichtigsten Punkte, das richtige Programm für die Aufgabe zu finden.

Nach einer kurzen Unterscheidung zwischen dem Event Tracing für Windows (Achtung, PowerPoint Download), zu dessen Vorteile wie geringer Overhead, gute Skalierung und hohe Performance zählen, und dem Auslesen von Kernel Mode Strukturen (etwa mittels dem Performance Monitor “Perfmon”), wurde die in Windows 7 / 2008 R2 stark erweiterte Version des “Resource Monitors” in einer Demo vorgeführt. Zugegeben, die Analyse von Prozessen und deren “Arbeit” auf einem System dürfte damit stark vereinfacht werden.

Aber auch XPerf mit seinen “Teilen” “xperf.exe”, “xbootmgr.exe” und ”xperfview.exe” können hier sehr gute Arbeit leisten. Ich persönlich war erstaunt, wie genau xperf.exe die Analyse von Daten ermöglicht – bis herunter gebrochen auf “context switches” von Threads bzw. Prozessen. XPerf läßt sich normalerweise nur ab Vista installieren – jedoch läßt sich das Mitschneiden (nicht das Auswerten) auch auf einem XP / 2003 System bewerkstelligen, wenn man die Dateien “xperf.exe” und “perfctrl.dll” auf diese Systeme kopiert und nur die Auswertung des *.etl Traces dann auf Vista / 2008 aufwärts durchführt.

Einen Trace erzeugt man am einfachsten während der gewünschten Analysesituation mittels

C:\> xperf.exe –on DiagEasy

Man kann die zu tracenden Daten natürlich auch einschränken, jedoch ist “DiagEasy” ein guter Startpunkt. Danach stoppt man den Trace und speichert ihn als *.etl ab:

C:\> xperf.exe –d trace.etl

Nun kann durch den Aufruf des folgenden Kommandos der Trace grafisch analysiert werden:

C:\> xperf.exe trace.etl

Da es hierbei schier unzählige Möglichkeiten, Optionen und Auswertungsparameter gibt, sollte man vor einem konkreten Problemfall einfach einmal einen Trace ziehen, alle verfügbaren Optionen sichten und mit den Daten “herumspielen”. Andernfalls fällt eine Analyse für den ungeübten Admin sicher nicht ganz einfach aus.

Neben einem Ausflug in die Theorie der CPU-Zeiten, etwa dem Umstand, daß die Prioritätswerte 0-15 für dynamische Zuweisungen stehen und 16-31 dann “real time” Prozesse darstellen, wurde auch Bezug auf die CPU-Zeit Auswertung selbst genommen. Vor Vista waren diese nämlich nicht immer akkurat verteilt, da die Messung anhand von “Meilensteinen” bzw. “Prüfmarken” im Sinne der gerechten CPU-Zeit Verteilung nicht “sauber” war. Ab Vista wird nun anstatt mit Prüfmarken mit Timestamp Countern gearbeitet, so daß es hier gerechter bei der Verteilung zugeht. Gelebte Nächstenliebe vom OS sozusagen. ;-)

Es folgen dann noch einige praktische Analysen per Demo Vorführung, bei der auch der Process Explorer Thema war.

Wer mehr zu dem Thema wissen will, der schaut in das Buch Windows Internals hinein; der Co-Autor Daniel Salomon David A. Solomon ist Arbeitgeber von Daniel Pearson.

Viele Grüße
Fabian