Delete an application partition (Perl)

This code can be found in Chapter 18 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 deletes the specified application partition

# ---------------------------------------------------------------
# Adapted from VBScript code contained in the book:
#      "Active Directory Cookbook" by Robbie Allen
# ISBN: 0-596-00466-4
# ---------------------------------------------------------------

# ------ SCRIPT CONFIGURATION ------
my $strAppPart = "<AppPartitionDN>";  # DN of the app partition to delete
# ------ END CONFIGURATION ---------
use Win32::OLE;
$Win32::OLE::Warn = 3;
my $objRootDSE = Win32::OLE->GetObject("LDAP://RootDSE");
my $strBase    = "<LDAP://cn=Partitions," . $objRootDSE->Get("ConfigurationNamingContext") . ">;";
my $strFilter  = "(&(objectclass=crossRef)(objectcategory=crossRef)(nCName=$strAppPart));" ;
my $strAttrs   = "cn,distinguishedName;";
my $strScope   = "onelevel";

my $objConn = Win32::OLE->CreateObject("ADODB.Connection");
$objConn->{Provider} = "ADsDSOObject";
$objConn->Open;
my $objRS = $objConn->Execute($strBase . $strFilter . $strAttrs . $strScope);

if ($objRS->RecordCount != 1) {
   print "Did not find a match for $strAppPart\n";
}
else {
   $objRS->MoveLast;
   my $objAppPart = Win32::OLE->GetObject("LDAP://" . $objRS->Fields("distinguishedName")->Value );
   $objAppPart->DeleteObject(0);
   print "Deleted ", $objRS->Fields("distinguishedName")->Value,"\n";
}

This code has been viewed 1256 times.

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