3.1.1.12.5 Process Changes

To perform the NC Rename operation, the following changes are completed. No ordering of these changes is implied or required. When an object is referred to by DN, the value of the DN is the value before any changes have been completed. Except where indicated, the metadata of changed objects is not updated to reflect the changes. Where the metadata is not updated, the changes are not replicated.

As in the previous section, NR is the NCRenameDescription tuple (section 3.1.1.12.1.11) describing the NC Rename operation.

  • For the object referred to by the DN "CN=Enterprise Configuration,CN=Partitions,CN=Configuraiton,NR.RootDomain.ExistingDN":

    • The dnsRoot attribute is set to NR.RootDomain.NewDNSName.

    • The metadata of the object is updated to reflect this change.

  • For the object referred to by the DN "CN=Enterprise Schema,CN=Partitions,CN=Configuration,NR.RootDomain.ExistingDN":

    • The dnsRoot attribute is set to NR.RootDomain.NewDNSName.

    • The metadata of the object is updated to reflect this change.

  • For every NCDescription AppNC in NR.AppNCs:

    • The DN of the object whose GUID is AppNC.Guid is set to AppNC.NewDN.

    • For the object referred to by "CN=AppNC.ExistingFlatName,CN=Partitions,CN=Configuraiton,NR.RootDomain.ExistingDN":

      • The dnsRoot attribute on the object is set to AppNC.NewDNSName.

  • For the root domain described by the DomainDescription tuple in NR.RootDomain:

    • The DN of the object referred to by NR.RootDomain.GUID is set to NR.RootDomain.NewDN.

    • For the object referred to by "CN=NR.RootDomain.ExistingFlatName,CN=Partitions,CN=Configuration,NR.RootDomain.ExstingDN":

      • The RDN is set to NR.RootDomain.NewFlatName.

      • The dnsRoot attribute is set to NR.RootDomain.NewDNSName.

      • The msDS-DnsRootAlias attribute is set to NR.RootDomain.ExistingDNSName.

      • The nETBIOSName attribute is set to NR.RootDomain.NewFlatName.

  • For every DomainDescription Domain in NR.TrustTreeRootDomains:

    • The DN of the object referred to by Domain.Guid is set to Domain.NewDN.

    • For the object referred to by "CN=Domain.ExistingFlatName,CN=Partitions,CN=Configuration,NR.RootDomain.ExstingDN":

      • The RDN is set to Domain.NewFlatName.

      • The dnsRoot attribute is set to Domain.NewDNSName.

      • The nETBIOSName attribute is set to Domain.NewFlatName.

      • Any values of the trustParent attribute are removed.

      • The rootTrust attribute is set to Domain.NewDN.

      • The msDS-DnsRootAlias attribute is set to Domain.ExistingDNSName.

  • For every DomainWithNewTrustParentDescription Domain in NR.TrustTreeNonRootDomains:

    • The DN of the object whose GUID is Domain.Guid is set to Domain.NewDN.

    • For the object referred to by "CN=Domain.ExistingFlatName,CN=Partitions,CN=Configuration,NR.RootDomain.ExstingDN":

      • The RDN is set to Domain.NewFlatName.

      • The dnsRoot attribute is set to Domain.NewDNSName.

      • The nETBIOSName attribute is set to Domain.NewFlatName.

      • The trustParent attribute is set to Domain.NewTrustParentFlatName.

      • Any values of the rootTrust attribute are removed.

      • The msDS-DnsRootAlias attribute is set to Domain.ExistingDNSName.

  • For every DomainDescription Domain in NR.AllDomains, where Domain.Guid refers to a writable object in an NC replica hosted on this DC:

    • For every TrustedDomainObjectDescription TrustedDomainObject in Domain.TrustedDomainObjects:

      • For the object referred to by "CN=TrustedDomainObject.ExistingTrustPartnerDNSName,CN=System,Domain.ExistingDN":

        • The RDN is set to TrustedDomainObject.NewTrustPartnerDNSName.

        • The flatName attribute is set to TrustedDomainObject.NewTrustPartnerFlatName.

        • The trustPartner attribute is set to TrustedDomainObject.NewTrustPartnerDNSName.

        • The metadata of the object is updated to reflect these changes.

    • For every InterdomainTrustAccountDescription InterdomainTrustAccount in Domain.InterdomainTrustAccounts:

      • For the object referred to by "CN=InterdomainTrustAccount.ExistingFlatName,InterdomainTrustAccount.ParentDNFromDomainDN,Domain.ExistingDN"

        • The RDN is set to InterdomainTrustAccount.NewFlatName.

        • The sAMAccountName attribute is set to InterdomainTrustAccount.NewFlatName.

        • The metadata of the object is updated to reflect these changes.

  • The msDS-ReplicationEpoch attribute on the DC's NTDS Settings object (section 6.1.1.2.2.1.2.1.1) is set to NR.NewReplicationEpoch.

When the changes have been successfully performed, the NC Rename operation returns a value of success. If some part of the NC Rename operation is not or cannot be performed, this protocol does not restrict what changes do occur in the abstract data of the NC performing the NC Rename operation, nor what the return value from the operation is. Such changes can be nondeterministic, and no expectation can be made by the user of the NC Rename operation as to what the result of a failed NC Rename operation will be. In order to improve the usability of this operation, it is suggested to implementers that, in this failure case, no changes be made and an error be returned.