CSE - Client Side Extensions

Die Client Side Extensions sind der Grund, warum Gruppenrichtlinien überhaupt auf Windows 2000, XP und 2003 funktionieren und nicht auf älteren oder anderen Systemen.
Gruppenrichtlinien werden zwar vom Server übergeben, aber nicht von im auf dem Client verarbeitet. Damit die Zielrechner "verstehen", was der Server da gerade übergeben möchte und "wie" diese Information vor allem "wo" angewendet wird, das entscheidet die CSE. Die Verarbeitung der Anweisung ist also komplett die Aufgabe des Ziel. Der Server stellt nur die Information zur Verfügung.
CSEs werden über DLL Dateien gesteuert die beim Anmeldeprozess (winlogon in einer bestimmten Reihenfolge verarbeitet werden. Die lokal vorhandene Systemdatei (DLL) kann die Steuerungsinformationen, die über die Gruppenrichtlinie eingestellt ist für das lokalen System auslesen und in das System integrieren. Die Übernahme, der Eintrag der Richtlinien erfolgt mit SYSTEM Berechtigungen.

Dieser Artikel enthält schon einige Erweitertungen zu Vista und Server 2008.


Microsoft Client Side Extensions, Reihenfolge und die dazugehörige DLL:
die CSEs die mit der Einführung des Windows Server 2008 veröffentlicht wurden sind andersfarbig dargestellt.
Die Namen der CSE sind in der Registry nicht mehr in deutsch dargestellt, weswegen ich sie auch hier zuerst so benenne, wie sie darin auftauchen.
Die "Lokalisierung" der Namen ist von mir nur aufgrund der Oberfläche im GPEditor so gewählt.
Das "Richtlinie für ..." habe ich nicht extra vorangestellt.

Jahrelang habe ich und jeder andere behauptet, der WIndows Server 2003 kennt nur 11 CSEs, aber über die Zeit haben sich doch schon weitere eingeschlichen:
Internet Explorer Zonenzuordnung, kam mit dem IE7, ersetzt das IEAK (Internet Explorer Wartung), einer der Gründe, warum die IE Wartung mit dem IE 7 sogut wie nicht mehr funktioniert.
Windows Suche, die optionale WDS Komponente hat wohl viele erschrocken, die ihre WSUS Updates automatisch ausrollen, sie wird ebenfalls über eine eigenen CSE gesteuert.

 
Reihenfolge Name der CSE Name der DLL Guid der Richtlinie
1 Registry / Registrierungrichtlinienverarbeitung userenv.dll {35378EAC-683F-11D2-A89A-00C04FBBCFA2}
2 Wireless Group Policy / Drahtlosnetzwerke gptext.dll {0ACDD40C-75AC-47ab-BAA0-BF6DE7E7FE63}
3 Group Policy Environment - Umgebung gpprefcl.dll {0E28E245-9368-4853-AD84-6DA3BA35BB75}
4 Group Policy Local Users and Groups / Lokale Benutzer und Gruppen gpprefcl.dll {17D89FEC-5C44-4972-B12D-241CAEF74509}
5 Group Policy Device Settings / Geräte gpprefcl.dll {1A6364EB-776B-4120-ADE1-B63A406A76B5}
6 Folder Redirection / Ordnerumleitung fdeploy.dll {25537BA6-77A8-11D2-9B6C-0000F8080861}
7 Microsoft Disk Quota dskquota.dll {3610eda5-77ef-11d2-8dc5-00c04fa31a66}
8 Group Policy Network Options / Netzwerkoptionen gpprefcl.dll {3A0DBA37-F8B2-4356-83DE-3E90BD5C261F}
9 QoS Packet Scheduler / Netzwerklastenausgleich gptext.dll {426031c0-0b47-4852-b0ca-ac3d37bfcb39}
10 Scripts Skriptrichtlinienverarbeitung gptext.dll {42B5FAAE-6536-11d2-AE5A-0000F87571E3}
11 Process Group Policy For Zone Map / Internet Explorer Zonenzuordnung iedkcs32.dll {4CFB60C1-FAA6-47f1-89AA-0B18730C9FD3}
12 Group Policy Drive Maps / Laufwerke gpprefcl.dll {5794DAFD-BE60-433f-88A2-1A31939AC01F}
13 Group Policy Folders / Ordner gpprefcl.dll {6232C319-91AC-4931-9385-E70C2B099F0E}
14 Group Policy Network Shares / Netzwerkfreigaben gpprefcl.dll {6A4C88C6-C502-4f74-8F60-2CB23EDC24E2}
15 Group Policy Files / Dateien gpprefcl.dll {7150F9BF-48AD-4da4-A49C-29EF4A8369BA}
16 Group Policy Data Sources / Datenverbindungen gpprefcl.dll {728EE579-943C-4519-9EF7-AB56765798ED}
17 Group Policy Ini Files / INI Dateien gpprefcl.dll {74EE6C03-5363-4554-B161-627540339CAB}
18 Windows Search Group Policy / WDS - Windows Suche srchadmin.dll {7933F41E-56F8-41d6-A31C-4148A711EE93}
19 Security / Sicherheitsrichtlinien scecli.dll {827D319E-6EAC-11D2-A4EA-00C04F79F83A}
20 Deployed Printer Connections / Bereitgestellte Drucker gpprnext.dll {8A28E2C5-8D06-49A4-A08C-632DAA493E17}
21 Group Policy Services / Dienste gpprefcl.dll {91FBB303-0CD5-4055-BF42-E512A681B325}
22 Internet Explorer Branding / Internet Explorer Wartung iedkcs32.dll {A2E30F80-D7DE-11d2-BBDE-00C04F86AE3B}
23 Group Policy Folder Options / Ordneroptionen gpprefcl.dll {A3F3E39B-5D83-4940-B954-28315B82F0A8}
24 Group Policy Scheduled Tasks / Geplante Tasks gpprefcl.dll {AADCED64-746C-4633-A97C-D61349046527}
25 Group Policy Registry / Registry gpprefcl.dll {B087BE9D-ED37-454f-AF9C-04291E351182}
26 EFS recovery / Dateiverschlüsselung scecli.dll {B1BE8D72-6EAC-11D2-A4EA-00C04F79F83A}
27 802.3 Group Policy dot3gpclnt.dll {B587E2B1-4D59-4e7e-AED9-22B9DF11D053}
28 Group Policy Printers / Drucker gpprefcl.dll {BC75B1ED-5833-4858-9BB8-CBF0B166DF9D}
29 Group Policy Shortcuts / Verknüpfungen gpprefcl.dll {C418DD9D-0D14-4efb-8FBF-CFE535C8FAC7}
30 Microsoft Offline Files / Offline Dateien cscobj.dll {C631DF4C-088F-4156-B058-4375F0853CD8}
31 Software Installation appmgmts.dll {c6dc5466-785a-11d2-84d0-00c04fb169f7}
32 IP Security userenv.dll
ab Vista/2008: polstore.dll
{e437bc1c-aa7d-11d2-a382-00c04f991e27}
33 Group Policy Internet Settings / Internet Einstellungen gpprefcl.dll {E47248BA-94CC-49c4-BBB5-9EB7F05183D0}
34 Group Policy Start Menu Settings / Startmenü gpprefcl.dll {E4F48E54-F38D-4884-BFB9-D4D2E5729C18}
35 Group Policy Regional Options / Regionale Einstellungen gpprefcl.dll {E5094040-C46C-4115-B030-04FB2E545B00}
36 Group Policy Power Options / Energie Optionen gpprefcl.dll {E62688F0-25FD-4c90-BFF5-F508B9D2E31F}
37 Group Policy Applications / Anwendungen gpprefcl.dll {F9C77450-3A41-477E-9310-9ACD617BD9E3}
38 Enterprise QoS gptext.dll {FB2CA36D-0B40-4307-821B-A13B252DE56C}

 



So sieht der Steuerungsprocess der CSEs über die winlogon.exe in 2000/XP/2003 aus:
Wie man der oberen Tabelle entnehmen kann, existieren mehr CSEs als einzelne DLLs. Das Schaubild verdeutlicht es etwas einfacher.

Quelle Technische Referenz Microsoft:
"How Core Group Policy Works - Policy Application Processes"



Die Liste der regisitrierten Client Side Extensions findet ihr in der Registry unter:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions



Stellt euch mal vor, euer GPEditor sieht so aus:

 

Wenn durch eine Softwareinstallation oder irgendeinem anderen Grund eine der DLLs nicht mehr im System registriert ist,  kommt es zu einem Anzeigefehler im Gruppenrichtlinien-Editor. Besser gesagt, es wird kein Fehler ausgegeben, sondern der betreffenden Punkt der Gruppenrichtlinien taucht erst gar nicht im Editor auf.
Jetzt kann man anhand der oberen Tabelle heraussuchen, welche DLL fehlt und diese einfach erneut registrieren, oder man macht es sich leicht und registriert alle ...

--- registerCSE_und_SnapIn_DLLs.bat ---
rem MMC SnapIns

rem Administrative Vorlagen und Script
regsvr32 %systemroot%\system32\gptext.dll

rem Ordnerumleitung
regsvr32 %systemroot%\system32\fde.dll

rem Internet Explorer Wartung
regsvr32 %systemroot%\system32\ieaksie.dll

rem Sicherheit
regsvr32 %systemroot%\system32\wsecedit.dll

rem Software Installation
regsvr32 %systemroot%\system32\appmgr.dll

rem IP Sicherheit
regsvr32 %systemroot%\system32\ipsecsnp.dll

rem Öffentliche Schlüssel und Softwareeinschränkung
regsvr32 %systemroot%\system32\certmgr.dll

rem Remote Installation Service
regsvr32 %systemroot%\system32\rigpsnap.dll

rem WLAN
regsvr32 %systemroot%\system32\Wlsnp.dll

rem weitere DLLs,zum Teil CSE (Sicherheit und IE Wartung)
rem und zur WLAN Konfiguration gehörige
regsvr32 %systemroot%\system32\scecli.dll
regsvr32 %systemroot%\system32\iedkcs32.dll
regsvr32 %systemroot%\system32\Wlstore.dll
regsvr32 %systemroot%\system32\ws03res.dll

rem Windows Suche
regsvr32 %systemroot%\system32\srchadmin.dll

rem IE Wartung und Zonenzuordnung
regsvr32 %systemroot%\system32\iedkcs32.dll

rem Bereitgestellte Drucker
regsvr32 %systemroot%\system32\gpprnext.dll

rem 802.3
regsvr32 %systemroot%\system32\dot3gpclnt.dll

rem Offline Dateien
regsvr32 %systemroot%\system32\cscobj.dll

rem IPSec
regsvr32 %systemroot%\system32\polstore.dll

rem alle "neuen" Einstellungen, "Group Policy *"
regsvr32 %systemroot%\system32\gpprefcl.dll

--- registerCSE_und_SnapIn_DLLs.bat ---



Spielkinder kommen jetzt auf die Idee, hier wäre der richtige Punkt gefunden, um die Anwendung von Gruppenrichtlinien generell auf dem "eigenen" Client zu "umgehen", in dem man die DLLs de-registrierd. Denn steht sie nicht zur Verfügung, dann kann die Richtlinie nicht verarbeitet werden. Aber das ist zum Glück ein Trugschluss. Wird die DLL deregistriert, dann wird der Punkt im Editor ausgeblendet, aber der Prozesse der Verarbeitung von Gruppenrichtlinien wird von der
winlogon.exe (Anmeldedienst) initiiert und dem Prozess ist die "Ansicht" einer Richtlinie ziemlich egal. Sie verarbeitet die DLL, ob registriert oder nicht ist egal. (Solange sie vorhanden ist ...)


(c) 2003 - heute, Mark Heitbrink, weitere Informationen unter WebSite-Info\Copyright