[gptalk] Re: Complete list of all available CSEs and their functionality
- From: "Cruz, Jerome L" <jerome.l.cruz@xxxxxxxxxx>
- To: "gptalk@xxxxxxxxxxxxx" <gptalk@xxxxxxxxxxxxx>
- Date: Wed, 16 Apr 2008 11:45:44 -0700
Hendrikus,
I see that you are also interested in designing GPOs in light of performance.
In small companies or for those companies whose work-force is not
geographically dispersed, spending a lot of effort to design GPO for super
efficient deployment is typically not necessary because all the updates can
take place quickly and with low load on the infrastructure devices (DCs and
networks). There is no clear delineation of what company size or what level of
workforce dispersion starts to cause impacts to your systems. I can also highly
recommend Darren's article on 'how to isolate GPOs by client extension'.
Since I recently responded to a similar question on a different GPO forum, I'll
duplicate some of that information here with some estimated numbers to give
everyone a chance to understand the impacts of GPOs on our DCs and networks.
========================================================================
VERY LONG WINDEDNESS WARNING
========================================================================
Group Policies process in order by 'client extension'. That means they
essentially process all registry entries from the ordered list of all GPOs
applicable to the Computer and then process all security entries from the
ordered list of all GPOs applicable to the Computer and so on.... It's
typically milliseconds between the registry updates. Then the user logs on and
the GPO processing engine performs the exact same "client extension" by "client
extension" processing for each of the GPOs applicable to the user account.
The 'use' of separate GPOs to implement registry entries (as an example) from
different Administrative template sections and then placing one or the other of
the GPOs above/below just isn't going to get you much--other than "generic
content of GPO visibility" by naming your GPO for what it does (Wireless
Settings GPO, User Profile Settings GPO, Printer Configuration settings GPO,
etc.). But, you can design GPOs to operate more efficiently by separating them
by 'client extension'.
Note: This next bit is admittedly long (yeah long-winded). Some of the other
GPO Admins have written articles on this (Hi Darren), but my spin on it will
have some numbers to look at...or better yet to 'look aghast' at.
Core Idea: Separate GPO Settings by Client Extension for better Performance
(create your GPOs with only one kind of setting type in each...registry,
security, etc.)
----------------
Let's say you've been editing GPOs for some time in a domain (in a large
Enterprise). "Real world" experience leads me to guess that a good many GPO
admins simply add additional settings to 'existing' GPOs over time because it's
more convenient that creating new ones. Sometimes they add Security settings,
sometimes Registry settings, etc. The point is that over time, a limited number
of Group Policy Objects contain multiple client extensions linked to them.
Okay, so what is the impact to your DCs of doing that kind of thing at the
domain root level?
When it comes time for a device to perform its background group policy refresh,
the device uses several criteria to determine whether the GPOs that are
applicable to it need to be re-processed. Examples of changes are 'new GPOs
being targeted', 'GPT.INI version changes', and 'security group changes' (and
please note that the same goes for the user account background policy
refreshes).
Let's focus upon "just" a Gpt.Ini file change. "One" change to a GPO updates
the GPO's GPT.Ini "version history" file in AD and in Sysvol. Each client
device knows what the version numbers of the GPOs that were last applied are
(stores them in its registry). Therefore, when the background GPO refresh
"wakes up" and checks its local versions against those in Active Directory, the
GPO sub-systems "wake up" to re-process the GPOs on-the-fly.
Here's the kicker, all that the GPO sub-system knows is that a GPO 'changed',
it doesn't know what "part" or which "client extension" changed. So if the GPO
had both security settings and registry settings, then both of those client
extensions have to wake up and process the GPOs. Stated another way, you've
just told all of your client devices to process 'both' registry AND security
client extensions for all GPOs with those kinds of settings in them. BUT, you
only "needed" the "registry" client extension processed. In short, you have
asked the client, the network, and the DC to perform more work than is
necessary. Let me give you a more realistic idea how this impacts your systems.
As an example, say that you have a large domain with 54,253+ devices (okay,
I'll be nice and say that only 50,000 are online...nice round number). Guess
what? The GPOs at the root of your domain get 'hammered' all day long (or
rather, the Gpt.Ini version history files at the root of each GPO get
'hammered'). Let's say you have 5 DCs in your local domain (ignore backup DCs
in remote locations). Also assume a standard 9 hour day. How many hits will you
have for "each" GPT.Ini file per DC per day (ignoring the device boot up/user
logon situation...we'll just estimate the background refresh hits)? [And
remember that GPOs perform a standard background refresh every 90-120 minutes,
so we'll estimate right in the middle and say that each device initiates a
background refresh every 105 minutes (both computer and user because these are
launched separately).]
The Math
========
Nine hours = 60 * 9 = 540 Minutes
540 minutes / 105 minutes = 5.14 Refreshes per day for each side
5.14 refreshes * 2 = 10.28 AD GPO hits for both Computer and User
settings for each device per day
10.28 hits/day * 50,000 devices = 514,000 Total hits/day
514,000 Hits per day / 5 DCs = 102,800 GPT.INI read hits per DC per day
That's a lot of hits already, but now lets add the 'multiple' GPOs into this.
Let's say you have targeted 8 Computer GPOs towards clients on average and 8
User GPOs on average. Okay, okay, let's just focus on domain root level
impacts, let's say that you only have 4 of each type of GPO (Computer settings
and User settings) linked to the root with the rest of your GPOs split up into
various user and computer OUs.
So... that would be a "Read my Gpt.Ini file version" load on SYSVOL for each DC
of (102,800 hits per GPO * 8 root level GPOs) = 822,400 reads per DC per day.
And remember, so far you've made no changes. "Just" reading the version history
files in the GPOs places a load of 800,000 hits on each DC in this simplified
scenario.
Now let's say that you change a Computer registry setting in 1 GPO. Each DC now
has to respond to additional file access requests for each GPO for the next two
hours until all devices are up to date. Let's also say that each of the "domain
root level" GPOs has both registry and security settings... that means that
there is a Gpt.Ini file, a Registry.Pol file, and a GptTmpl.Inf file within the
sysvol folder structure in 'each' GPO.
Therefore, in addition to having to read 200,000 Gpt.Ini files (4 GPOs * 50,000
devices) you've added a load of 400,000 reads (4 GPOs * two additional file
reads * 50,000 devices) for the next two hours for a total of 600,000 reads
(again, that's 50,000 devices reading 3 files per GPO at the root of the domain
* 4 Computer GPOs). [BTW: That's ~95 reads/sec in SYSVOL for the next two hours
straight. And that is only for the root level GPOs, there are also the read
requests for the remaining GPOs in lower level OUs.]
Oh, did I forget to mention that there may be "On Access" AV scans going on as
well for all three files for each read request? Not a separate read, but
certainly a 'processor' on the DC is involved as well as possibly the AV
scanner on the local client device. Okay, okay, assume I didn't mention
those... :)
If you had separated the GPOs at the root by client extension then the "load"
on the DC's root level GPOs would have been only a total of 400,000 reads. That
is certainly significant enough for you to seriously consider redesigning the
way you use GPOs. It's a scale thing to be certain. Smaller companies do not
have to worry too much about performance issue of this kind (assumes these
companies staffs are geographically centered near their DCs).
However, if a company is smaller, but has a large number of the
employees/devices that are dispersed (far distances away from their DCs) and if
they log on for significant periods of time, then the background refreshes
under this scenario can take much longer due to latency in the network. Again,
separating the GPOs by client extension means that changing one type of setting
can improve experience those remote systems and reduce total network traffic at
the same time.
Note: Since I work for a larger Enterprise than noted above and my access
numbers are easily into the millions of SYSVOL read accesses per day. We have
to be very cognizant about when/where/how we allow GPO changes to be made or we
can run into replication issues and/or place undue processing requirements upon
our customers, their devices, the network, and/or the DCs.
TIP: GPO Admins may want to take a look at eliminating 'On Access' anti-virus
scanning of the GPT.Ini files to reduce the 'load' on the DCs. Make sure that
you have good GPO backup processes in place, make sure your security folks
agree, and also make sure that other scheduled AV scans are left intact (both
on the DC as well as on the clients accessing them), and test, test, test.
Aren't GPOs fun! :)
Jerry C
This posting is provided "AS IS" with no warranties and confers no rights.
------------------------------------------------------------------------------------------------
From: gptalk-bounce@xxxxxxxxxxxxx [mailto:gptalk-bounce@xxxxxxxxxxxxx] On
Behalf Of Thorbjörn Sjövold
Sent: Wednesday, April 16, 2008 8:49 AM
To: gptalk@xxxxxxxxxxxxx
Subject: [gptalk] Re: Complete list of all available CSEs and theirfunctionality
Hendrikus,
the Registry CSE is pretty much the descendant of the old NT 4 policies, it has
GUID {35378EAC-683F-11D2-A89A-00C04FBBCFA2} (and is listed but no settings), it
is very special and not a "true" CSE to 100%, for example when you register
your own CSE, you can say that it should only process if the Registry CSE
successfully executed etc. But to sum up it is the CSE that is responsible for
anything under Administrative Templates, i.e. ADM/ADMX. Also a number of other
extensions rely on the Registry CSE, for example the Software Restriction
Policy as far as I recall, that in reality adds settings that the Registry CSE
will manage but from its own GPOE snap-in.
HTH,
Thorbjörn Sjövold
Special Operations Software
www.specopssoft.com<http://www.specopssoft.com>
thorbjorn.sjovold a t specopssoft.com
Download our free tool for remote Gpupdate with graphical reporting,
http://www.specopssoft.com/products/specopsgpupdate/
From: gptalk-bounce@xxxxxxxxxxxxx [mailto:gptalk-bounce@xxxxxxxxxxxxx] On
Behalf Of Hendrikus Terwint (SEDIRSI-Prestataire)
Sent: den 16 april 2008 17:31
To: gptalk@xxxxxxxxxxxxx
Subject: [gptalk] Re: Complete list of all available CSEs and their
functionality
Thanks a lot for your quick reply, Darren, as well as Thorbjörn.
I'm not quite sure though if I understand what you both mean by "Registry CSE".
I guess you mean it's not one of the CSEs listed in my GPExtensions registry
key? (I'm not sure whether there is one main "registry" CSE with some
additional CSE extensions, or if the "registry CSE" is just one of those/ any
of those extensions we can find under HKLM\Software\Microsoft\Windows
NT\CurrentVersion\Winlogon\GPExtensions).
I'd like to optimize our GPOs, i.e. per GPO only add settings that are
processed by a single CSE. (Goal: if the GPO version is incremented, have only
CSE x update its list, and not CSE y)
You are right Darren: the GPExtensions list is pretty straightforward, but they
only cover a small percentage of the overall settings. If the "Registry CSE"
does most everything, I'm wondering if my "optimization" would make sense....
Hendrikus
De : gptalk-bounce@xxxxxxxxxxxxx [mailto:gptalk-bounce@xxxxxxxxxxxxx] De la
part de Darren Mar-Elia
Envoyé : mercredi 16 avril 2008 16:03
À : gptalk@xxxxxxxxxxxxx
Objet : [gptalk] Re: Complete list of all available CSEs and their functionality
Hendrikus-
Frankly the most definitive list of CSEs will be on the machine of the most
recent version of Windows you are running, in the registry under
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions.
In terms of which settings are processed by which CSEs, this is not completely
straightforward but, for example, most everything under Administrative
Templates is processed by the Registry CSE and then the rest of the CSEs are
pretty self-explanatory. But I don't think you will find a definitive list of
which CSE processes every setting.
Darren
From: gptalk-bounce@xxxxxxxxxxxxx [mailto:gptalk-bounce@xxxxxxxxxxxxx] On
Behalf Of Hendrikus Terwint (SEDIRSI-Prestataire)
Sent: Wednesday, April 16, 2008 6:39 AM
To: gptalk@xxxxxxxxxxxxx
Subject: [gptalk] Complete list of all available CSEs and their functionality
Hello everybody,
Is there a way to determine which GP setting is processed by which CSE ?
I have found a list of default Client-Side Extensions on Technet:
http://technet2.microsoft.com/windowsserver/en/library/824b4758-9430-4633-8d8f-3dad0f2bf8391033.mspx?mfr=true
However, I'd like to see a complete list, just like the "Group Policy Settings
Reference" on windows.com/downloads, with a column that says which CSE is
responsible for processing which setting.
For example: if we use the DFS.admx to change the DFS network policy. Is there
a DFS CSE that processes this policy, or is it processed by one of the default
CSEs? Does it require an extension at all? Maybe the CSE list on the link above
is quite complete, and all other settings are processed by the Group Policy
Engine itself?
Is there such list around somewhere? (that links every possible GP setting to
the GP Engine or CSE component that processes this setting)
Many thanks in advance,
Hendrikus TERWINT
Consultant Avanade France
hendrikus.terwint@xxxxxxxxxxx<mailto:hendrikus.terwint@xxxxxxxxxxx>
Prestataire pour le compte de SEDI-RSI, site de Bagnolet
Tél. : 01 55 82 39 70
- Follow-Ups:
- [gptalk] Re: Complete list of all available CSEs and their functionality
- From: Darren Mar-Elia
- References:
- [gptalk] Re: Complete list of all available CSEs and their functionality
- From: Hendrikus Terwint \(SEDIRSI-Prestataire\)
- [gptalk] Re: Complete list of all available CSEs and their functionality
- From: Thorbjörn Sjövold
Other related posts:
- » [gptalk] Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- » [gptalk] Re: Complete list of all available CSEs and their functionality
- [gptalk] Re: Complete list of all available CSEs and their functionality
- From: Darren Mar-Elia
- [gptalk] Re: Complete list of all available CSEs and their functionality
- From: Hendrikus Terwint \(SEDIRSI-Prestataire\)
- [gptalk] Re: Complete list of all available CSEs and their functionality
- From: Thorbjörn Sjövold