Be sure to check out the article GPO In Five Figures for
a summary of the GPO system, this includes some information on GPO creation.
Before you can achieve anything in GPO you must have access to an
IObjectManager, the "how to" on GPO Initialization covers this.
There are then two ways to create a new GPO object, but 99 percent of the time you
will use just one.
IObjectManager om = client.getObjectManager(); IGPOMap agpm = new GPOMap(om);
The above code snippet will create a new persistent GPOMap object. You can now
set properties and set it as the value of another GPOMap object's properties.
As an optimisation, a second method allows that an object can be created local to some
other GPO object.
IGPOMap anogpm = new GPOMap(agpm);
When you create an object in this way, it is stored within the "parent" GPO object.
Apart from this storage side-effect, the object is in no sense restricted, you can pass references around to a "local" object just as validly as any other.