Raise functional levels on Windows Server 2008 Server Core

To raise the domain or forest functional levels on a 2008 server core machine use Powershell. Furhermore, you have to use ActiveDirectory Powershell module for this task.

Active Directory Powershell module

To enable this module use the following command:

C:\Windows\system32>DISM /online /enable-feature /featurename:ActiveDirectory-PowerShell

Deployment Image Servicing and Management tool

Version: 6.1.7600.16385

Image Version: 6.1.7600.16385

Enabling feature(s)

[==========================100.0%==========================]

The operation completed successfully.

After this, the mentioned module should be available using powershell:

PS C:\Windows\system32> Get-Module -ListAvailable

ModuleType Name                      ExportedCommands
———- —-                      —————-
Manifest   ActiveDirectory           {}
Manifest   BitsTransfer              {}
Manifest   PSDiagnostics             {}
Manifest   ServerManager             {}

To be able to use the commandlets of this module use the Import-Module cmdlet:

PS C:\Windows\System32> Import-Module ActiveDirectory
PS C:\Windows\System32> Get-Command -Module ActiveDirectory

CommandType     Name
———–     —-
Cmdlet          Add-ADComputerServiceAccount
Cmdlet          Add-ADDomainControllerPasswordReplicationPolicy
Cmdlet          Add-ADFineGrainedPasswordPolicySubject
Cmdlet          Add-ADGroupMember
Cmdlet          Add-ADPrincipalGroupMembership

To list the new commandlets available for you, use Get-Command with the modulename as parameter (see above excerpt)

This means, you can use 76 new commands and the “AD:” drive. To read more about the commands start here: Active Directory Cmdlets in Windows PowerShell

To query the current level use the Get-ADDomainMode and Get-ADForestMode commands, and look for DomainMode and ForestMode properties:

PS C:\Windows\System32> (Get-ADDomain).DomainMode
Windows2000Domain
PS C:\Windows\System32> (Get-ADForest).ForestMode
Windows2000Forest

Raise domain functional level

To raise the domain functional level use Set-ADDomainMode command:

PS C:\Windows\system32> Set-ADDomainMode -Identity “letitknow.local” -DomainMode “Windows2003Domain”

Confirm

Are you sure you want to perform this action?

Performing operation “Set” on Target “DC=letitknow,DC=local”.

[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help

(default is “Y”):y

Note: You must specify the domain name and the functional level. For the latter the possible values are:

  • Windows2000Domain or 0
  • Windows2003InterimDomain or 1
  • Windows2003Domain or 2
  • Windows2008Domain or 3
  • Windows2008R2Domain or 4

Raise forest functional level

To raise the forest functional level use Set-ADForestMode command:

PS C:\Windows\system32> Set-ADForestMode -Identity “letitknow.local” -ForestMode “Windows2003Forest”

Confirm

Are you sure you want to perform this action?

Performing operation “Set” on Target

“CN=Partitions,CN=Configuration,DC=letitknow,DC=local”.

[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help

(default is “Y”):y

Note: You must specify the forest object and the name of the functional level. For the latter the possible values are:

  • Windows2003InterimForest or 1
  • Windows2003Forest or 2
  • Windows2008Forest or 3
  • Windows2008R2Forest or 4

Error handling

In case you cannot execute the operation, powershell gives you a detailed error message about the problem.

For example, I tried to raise the domain functional level to WindowsServer 2008 R2, but I still have 2003 domain controllers in my domain:

PS C:\Windows\System32> Set-ADDomainMode -Identity letitknow.local -DomainMode Windows2008R2Domain

Confirm Are you sure you want to perform this action? Performing operation “Set” on Target “DC=letitknow,DC=local”. [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is “Y”): y Set

-ADDomainMode : The functional level of the domain (or forest) cannot be raised to the requested value, because there exist one or more domain controllers in the domain (or forest) that are at a lower incompatible functional level At line:1 char:17

+ Set-ADDomainMode <<<<  -Identity letitknow.local -DomainMode Windows2008R2Domain

+ CategoryInfo          : NotSpecified: (letitknow.local:ADDomain) [Set-ADDomainMode], ADException

+ FullyQualifiedErrorId : The functional level of the domain (or forest) cannot be raised to the requested value,    because there exist one or more domain controllers in the domain (or forest) that are at a lower incompatible functional level,Microsoft.ActiveDirectory.Management.Commands.SetADDomainMode

3 thoughts on “Raise functional levels on Windows Server 2008 Server Core”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s