4.1.10.5.16 GetRoleScope
-
procedure GetRoleScope(fsmoObj: DSName): set of DSName
Informative summary of behavior: The GetRoleScope procedure returns the set of objects in the FSMO role identified by the FSMO role object fsmoObj.
-
scope: set of DSName partitionsFsmoObj: DSName schemaFsmoObj: DSName ridFsmoObj: DSName pdcFsmoObj: DSName c: DSName r: set of DSName partitionsFsmoObj := select one o from children ConfigNC() where o!name = "Partitions" schemaFsmoObj := SchemaNC() infrastructureFsmoObj := select one o from children DefaultNC() where o!name = "Infrastructure" ridFsmoObj := DefaultNC()!rIDManagerReference /* Scope always includes fsmoObj. For the PDC Emulation Role, scope * includes only fsmoObj. */ scope := {fsmoObj} if fsmoObj = partitionsFsmoObj then /* Partition Naming Master Role: Add to scope the children of the * Partitions container. */ r := select all o from children partitionsFsmoObj where true scope := scope + r else if fsmoObj = schemaFsmoObj then /* Schema Master Role: Set scope to all objects in the Schema * NC. */ scope := select all o from subtree SchemaNC() where true else if fsmoObj = infrastructureFsmoObj then /* Infrastructure Master Role: Add to scope all objects in the * subtree rooted at CN=DomainUpdates,CN=System,DefaultNC(). */ c := select one o from children DefaultNC() where o!name = "System" c := select one o from children c where o!name = "DomainUpdates" r := select all o from subtree c where true scope := scope + r else if fsmoObj = ridFsmoObj then /* RID Allocation Master Role: Add to scope all children of * CN=Infrastructure,DefaultNC() that are of class * infrastructureUpdate and have a value for the proxiedObjectName * attribute. */ r := select all o from children-ts-included infrastructureFsmoObj where infrastructureUpdate in o!objectClass and not o!proxiedObjectName = null scope := scope + r endif return scope