Configuration driven Active Directory management.
Define permissions that should apply to group policy objects.
This can operate in two different modes:
The mode can be selected on a per-GPO basis and is defined through the Managed
property in configuration.
When creating a new context with the
-DefaultAccessRules
parameter enabled, default GPO permissions (and associated permission filters) are also defined.
Define a global (=All GPOs) FullControl right for the group “SEC-GPO-Admins”:
{
"All": true,
"Identity": "%DomainName%\\SEC-GPO-Admins",
"ObjectClass": "Group",
"Permission": "GpoEditDeleteModifySecurity"
}
Define an access rule, that grants the ClientAdmin group full control over the GPO Client-G-Security-Baseline:
{
"GpoName": "Client-G-Security-Baseline",
"Identity": "%DomainName%\\ClientAdmins",
"ObjectClass": "Group",
"Permission": "GpoEditDeleteModifySecurity"
}
Define a permission rule, that defines all affected GPOs as “under management”: Undefined accessrules will be removed!
{
"Filter": "IsManaged -or Tier0Linked -or Tier1Linked",
"NoPermissionChange": true,
"Managed": true
}
ParameterSet: Explicit
This parameter uses name resolution.
Name of the GPO this permission applies to.
ParameterSet: Filter
The filter condition governing, what GPOs these permissions apply to.
Filters can be a filter string that would be legal powershell, however they can contain only a few items:
They must be syntactically correct as far as PowerShell is concerned.
For example, these would both be legal filters:
IsManaged -and Tier0
-not (IsManaged) -or (Tier1 -and UserScope)
All filters must be defined when testing GP Permissions. To define a filter, see the gppermissionfilters Component.
Were a filter string accepted where a filter condition has not been defined, we could not be sure the permissions were correctly resolved, which might lead to critical security configuration errors. Due to this any configuration error will lead to terminating the test and not providing any actions!
Group Policy Permissions and their filters need not be defined in the same Context, but they will be evaluated at test time.
All filter conditions currently supported come down to these distinct types:
The name chosen for a condition is arbitrary, but can only contain letters, numbers and underscore.
ParameterSet: All
This access rule applies to ALL GPOs.
Parameter SubSet: Permission
This parameter uses name resolution.
The principal (group, user, computer, …) to assign permissions to.
Parameter SubSet: Permission
What kind of object the assigned identity is. Can be any legal object class in AD. Only object classes that have a SID should be chosen though (otherwise, assigning permissions to it gets kind of difficult).
Parameter SubSet: Permission
What kind of permission to grant.
Supported permissions:
Note:
GpoCustom
is the equivalent ofGpoEditDeleteModifySecurity
minus the deletion rights. This is the default permission level of Domain Admins and Enterprise Admins on the Default Domain Policy.
Parameter SubSet: Permission
Whether to create a Deny rule, rather than an Allow rule.
Parameter SubSet: No Permission Change
This specific single rule will not add any permissions. Setting this flag allows defining a rule that only applies the “Managed” state (see below).
Whether the affected GPOs should be considered “Under Management”. A GPO “Under Management” will have all non-defined permissions removed.
All GPOs are considered unmanaged unless affected by a GPPermission rule that says they are to be managed. Any single setting that declares “management” will trigger the control behavior. Later Contexts’ settings cannot change that!