http://qs321.pair.com?node_id=862016


in reply to Listing Domain Controllers

Using Win32::OLE and ADSI you can get this information:

# This Perl code displays the domain controllers for the specified dom +ain. # --------------------------------------------------------------- # 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 = ''; # 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("de +faultNamingContext")); 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"; }

Adapt to taste.

Replies are listed 'Best First'.
Re^2: Listing Domain Controllers
by Anonymous Monk on Jul 27, 2012 at 13:41 UTC
    The above code results in: Can't call method "in" on unblessed reference at... referring to line: foreach my $strNTDSDN (in $strMasteredBy) {