Change the functional level of a forest (Perl)

This code can be found in Chapter 3 of Exchange Server Cookbook

Purchase XP Cookbook or Networking Recipes for only $25 plus shipping! While supplies last.

Find out how to download all of the Perl code from this site.

use Win32::OLE;

# This code changes the functional level of the forest.

# From the book "Active Directory Cookbook" by Robbie Allen
# ISBN: 0-596-00466-4

$objRootDSE = Win32::OLE->GetObject('LDAP://RootDSE');
$objDomain = Win32::OLE->GetObject('LDAP://cn=partitions,' . $objRootDSE->Get('configurationNamingContext'));
if ($objDomain->Get('msDS-Behavior-Version') != 2) {
    print "Attempting to change forest to Windows Server 2003 functional level…\n";
    $objDomain->Put('msDS-Behavior-Version', 2);
    $objDomain->SetInfo();
}
else {
    print "Forest already at Windows Server 2003 functional level\n";
}

This code has been viewed 647 times.

New from the creators of TechTasks.com: StatSheet.com