3.1.1.5.3.4 BehaviorVersion Updates

If the DC functional level is DS_BEHAVIOR_WIN2003 or greater and less than DS_BEHAVIOR_WIN2008R2, then originating updates of the msDS-Behavior-Version attribute are permitted, subject to the following additional constraints:

  • The object being modified is the NC root of the domain NC (domain functional level) or the CN=Partitions child of the config NC (forest functional level); otherwise, unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION is returned.

  • The new value is greater than the current value; otherwise, unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION is returned.

  • The operation is performed on the FSMO (PDC for domain functional level updates, Schema Master FSMO for forest functional level updates); otherwise referral / ERROR_DS_REFERRAL is returned.

  • If the domain functional level is being raised, then the domain MUST NOT contain a DC whose functional level is lower than the new value. This is determined by searching the config NC for objects with objectCategory nTDSDSA whose msDS-Behavior-Version attribute value is below the new value and whose hasMasterNCs attribute contains the DN of the domain NC root. If the search returns one or more results, then unwillingToPerform / ERROR_DS_LOW_DSA_VERSION is returned.

  • If the forest functional level is being raised, then the forest MUST NOT contain a DC whose functional level is lower than the new value. This is determined by searching the config NC for objects with objectCategory nTDSDSA whose msDS-Behavior-Version attribute value is below the new value. If the search returns one or more results, then unwillingToPerform / ERROR_DS_LOW_DSA_VERSION is returned.

  • If the domain functional level is being raised from a value below DS_BEHAVIOR_WIN2003 to a value of DS_BEHAVIOR_WIN2003 or greater, then the domain is not a mixed-mode domain. If the domain is a mixed-mode domain, then unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION is returned.

  • If the forest functional level is raised from a value below DS_BEHAVIOR_WIN2003 to a value of DS_BEHAVIOR_WIN2003 or greater, then the forest does not contain mixed-mode domains. If the forest does contain mixed-mode domains, then unwillingToPerform / ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXED_DOMAIN is returned.

If the DC functional level is DS_BEHAVIOR_WIN2008R2 or greater, then originating updates of the msDS-Behavior-Version attribute are permitted, subject to the following additional constraints:

  • The object being modified is the nTDSDSA object of an RODC (DC functional level of an RODC), or NC root of the domain NC (domain functional level) or the CN=Partitions child of the config NC (forest functional level); otherwise, unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION is returned.

  • If the DC functional level of an RODC is being modified, the operation is performed on a writable DC that is a member of the same domain the RODC is a member of; otherwise, unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION is returned.

  • If the DC functional level of an RODC is being modified, the new value is greater than or equal to the domain functional level of the domain the RODC is a member of; otherwise, unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION is returned.

  • If the domain functional level is being modified, the operation is performed on the PDC FSMO; otherwise referral / ERROR_DS_REFERRAL is returned.

  • If the domain functional level is being modified, the new value is greater than the current value or is greater than the forest functional level; otherwise, unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION is returned.

  • If the domain functional level is being modified, then the domain MUST NOT contain a DC whose functional level is lower than the new value. This is determined by searching the config NC for objects with objectCategory nTDSDSA or nTDSDSARO, whose msDS-Behavior-Version attribute value is below the new value and whose hasMasterNCs attribute contains the DN of the domain NC root. If the search returns one or more results, then unwillingToPerform / ERROR_DS_LOW_DSA_VERSION is returned.

  • If the domain functional level is being raised from a value below DS_BEHAVIOR_WIN2003 to a value of DS_BEHAVIOR_WIN2003 or greater, then the domain is not a mixed-mode domain. If the domain is a mixed-mode domain, then unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION is returned.

  • If the forest functional level is being modified, the operation is performed on the Schema Master FSMO; otherwise referral / ERROR_DS_REFERRAL is returned.

  • If the forest functional level is being modified, then the forest MUST NOT contain a DC whose functional level is lower than the new value. This is determined by searching the config NC for objects with objectCategory nTDSDSA or nTDSDSARO and whose msDS-Behavior-Version attribute value is below the new value. If the search returns one or more results, then unwillingToPerform / ERROR_DS_LOW_DSA_VERSION is returned.

  • If the forest functional level is raised from a value below DS_BEHAVIOR_WIN2003 to a value of DS_BEHAVIOR_WIN2003 or greater, then the forest does not contain mixed-mode domains. If the forest does contain mixed-mode domains, then unwillingToPerform / ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXED_DOMAIN is returned.

  • If the new value is less than or equal to the existing value, the new value is greater than or equal to DS_BEHAVIOR_WIN2008; otherwise, unwillingToPerform / ERROR_DS_HIGH_DSA_VERSION is returned.

    Note In applicable Windows Server releases prior to Windows Server 2012 operating system, unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION is returned.