Find DCs (Perl)

This code can be found in Chapter 3 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 displays the domain controllers for the specified domain.

# ---------------------------------------------------------------
# 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. emea.rallencorp.com
# ------ END CONFIGURATION ---------
use Win32::OLE 'in';
$Win32::OLE::Warn = 3;
my $objRootDSE = Win32::OLE->GetObject("LDAP://$strDomain/RootDSE");
my $objDomain = Win32::OLE->GetObject("LDAP://" . $objRootDSE->Get("defaultNamingContext"));
my $strMasteredBy = $objDomain->GetEx("masteredBy");
foreach my $strNTDSDN (in $strMasteredBy) {
   my $objNTDS = Win32::OLE->GetObject("LDAP://" . $strNTDSDN);
   my $objServer = Win32::OLE->GetObject($objNTDS->Parent);
   print $objServer->Get("dNSHostName"),"\n";
}

This code has been viewed 1577 times.

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