Raise domain functional level (Perl)

This code can be found in Chapter 2 of Active Directory Cookbook, 2nd edition

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.

# This Perl code changes the functional level of the specified domain to 
# the Windows Server 2003 domain functional level

# ---------------------------------------------------------------
# Adapted from VBScript code contained in the book:
#      "Active Directory Cookbook" by Robbie Allen
# Publisher: O'Reilly and Associates
# ISBN: 0-596-00466-4
# Book web site: http://rallenhome.com/books/adcookbook/code.html
# ---------------------------------------------------------------

# ------ SCRIPT CONFIGURATION ------
my $strDomain = "<DomainDNSName>";   # e.g. amer.rallencorp.com
# ------ END CONFIGURATION ---------
use Win32::OLE;
$Win32::OLE::Warn = 3;
my $objDomain = Win32::OLE->GetObject("LDAP://$strDomain");
$objDomain->GetInfo;
if ($objDomain->Get("msDS-Behavior-Version") != 2) {
   print "Changing domain to Windows Server 2003 functional level...\n";
   $objDomain->Put("msDS-Behavior-Version", 2);
   $objDomain->SetInfo;
}
else {
   print "Domain already at Windows Server 2003 functional level\n";
}

This code has been viewed 1300 times.

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