Thanks for the assistance.

Here's an enumeration script that will recursively enumerate computers and
OUs when given a starting OU.
#-----------------------------------------------------------------
use Win32::OLE;
use Win32::OLE::Enum qw/in with/;
use strict;

&EnumOUsForComputers("LDAP://OU=NCS, OU=Machines, DC=us, DC=tycoelectronics,
DC=com");
sub EnumOUsForComputers
{
        my $start = shift;
        my $ou = Win32::OLE->GetObject($start);
        print "$start\n";
        $ou->{Filter} = [ 'computer' ];
        my $ComputerCount = 0;
        foreach my $item (in $ou)
        {
                $item->{Name} =~ /^CN=(.*)$/;
                print "Computer: $1\n";
                $ComputerCount++;
        }
        &LogText("$start\t$ComputerCount");
        $ou->{Filter} = [ 'organizationalUnit' ];
        foreach my $item (in $ou)
        {
                my $DN = $start;
                $DN =~ s/\/\//\/\/$item->{Name}\, /;
                &EnumOUsForComputers($DN);
        }
}


sub LogText
{
        #my $LogFile = shift;
        my $text = shift;
        #my $time = localtime;
        open (LOG, ">>OU.txt" ) || die "Could not open Logfile: \'OU.txt\' "
. $text . "\n";
        print "$text\n";
        print LOG "$text\n";
        close LOG;
}
#-----------------------------------------------------------------
_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-admin

Reply via email to