2.13.1 ProblemYou want to raise the functional level of a Windows Server 2003 domain. You should raise the functional level of a domain as soon as possible after installing a new Windows Server 2003 domain or upgrading from Windows 2000 to take advantage of the new features and enhancements. 2.13.2 Solution2.13.2.1 Using a graphical user interface
After a few seconds you should see a message stating whether the operation was successful. 2.13.2.2 Using a command-line interfaceTo retrieve the current functional level, use the following command: > dsquery * <DomainDN> -scope base -attr msDS-Behavior-Version Or you can use the enumprop command found in the Windows 2000 Resource Kit. > enumprop /ATTR:msDS-Behavior-Version "LDAP://<DomainDN>" To change the functional level to Windows Server 2003, create an LDIF file called raise_domain_func_level.ldf with the following contents: dn: <DomainDN> changetype: modify replace: msDS-Behavior-Version msDS-Behavior-Version: 2 - Next, run the ldifde command to import the change. > ldifde -i -f raise_domain_func_level.ldf 2.13.2.3 Using VBScript' This code changes the functional level of the specified domain to ' the Windows Server 2003 domain functional level ' ------ SCRIPT CONFIGURATION ------ strDomain = "<DomainDNSName>" ' e.g. amer.rallencorp.com ' ------ END CONFIGURATION --------- set objDomain = GetObject("LDAP://" & strDomain) objDomain.GetInfo if objDomain.Get("msDS-Behavior-Version") <> 2 then Wscript.Echo "Changing domain to Windows Server 2003 functional level . . . " objDomain.Put "msDS-Behavior-Version", 2 objDomain.SetInfo else Wscript.Echo "Domain already at Windows Server 2003 functional level " end if 2.13.3 DiscussionIn Windows Server 2003 Active Directory, functional levels have replaced the domain mode that was used in Windows 2000 to signify what operating systems are allowed to run on the domain controllers in the domain. With Windows Server 2003, there are functional levels for both domains and forests; whereas with Windows 2000, the domain mode only applied to domains. The msDS-Behavior-Version attribute of the domainDNS object (e.g., dc=amer,dc=rallencorp,dc=com) holds the current domain functional level. Table 2-4 shows the three functional levels, their associated msDS-Behavior-Version value, and the operating systems that can be used on domain controllers in each.
When a domain is at the Windows 2000 functional level, the domain can be in mixed mode or native mode, as described in Recipe 2.9. Various new features of Windows Server 2003 Active Directory are enabled with each domain functional level. See Chapter 1 of Active Directory, Second Edition (O'Reilly) for more details. The value contained in msDS-Behavior-Version is mirrored in the domainFunctionality attribute of the RootDSE. That means you can perform anonymous queries against the RootDSE of a domain to quickly determine what functional level it is currently at.
2.13.4 See AlsoChapter 1 of Active Directory, Second Edition, Recipe 2.9 for changing domain mode, Recipe 2.10 for preparing a forest with adprep, Recipe 2.14 for raising the functional level of a forest, and MS KB 322692 (HOW TO: Raise the Domain Functional Level in Windows Server 2003) |