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