Reset trust (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 resets the specified trust.

# ---------------------------------------------------------------
# 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 ------
# Set to the DNS or NetBIOS name for the Windows 2000,
# Windows NT domain or Kerberos realm you want to reset the trust for.
my $strTrustName = "<TrustToCheck>";

# Set to the DNS name of the source or trusting domain.
my $strDomain    = "<TrustingDomain>";
# ------ END CONFIGURATION ---------
use Win32::OLE;
$Win32::OLE::Warn = 3;
# Enable SC_RESET during trust enumerations
my $objTrustProv = Win32::OLE->GetObject("winmgmts:\\\\$strDomain\\root\\MicrosoftActiveDirectory:Microsoft_TrustProvider=@");
$objTrustProv->TrustCheckLevel = 3;  # Enumerate with SC_RESET
$objTrustProv->Put_;

# Query the trust and print status information
my $objWMI = Win32::OLE->GetObject("winmgmts:\\\\$strDomain\\root\\MicrosoftActiveDirectory");
my $objTrusts = $objWMI->ExecQuery("Select * " .
                         " from Microsoft_DomainTrustStatus " .
                         " where TrustedDomain = '$strTrustName'" );
foreach my $objTrust (in $objTrusts) {
    print objTrust->TrustedDomain,"\n";;
    print " TrustedAttributes: " , $objTrust->TrustAttributes, "\n";
    print " TrustedDCName: "     , $objTrust->TrustedDCName, "\n";
    print " TrustedDirection: "  , $objTrust->TrustDirection, "\n";
    print " TrustIsOk: "         , $objTrust->TrustIsOK, "\n";
    print " TrustStatus: "       , $objTrust->TrustStatus, "\n";
    print " TrustStatusString: " , $objTrust->TrustStatusString, "\n";
    print " TrustType: "         , $objTrust->TrustType, "\n\n";
    print ""
}

This code has been viewed 1243 times.

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