use Win32::OLE qw(in); showObjects("LDAP://[INSERT DOMAIN NAME HERE]",""); sub showObjects { my ($path, $space) = @_; my $object = Win32::OLE->GetObject($path); print "$space $object->{Name} ($object->{Class})\n"; foreach my $childObject (in $object) { showObjects($childObject->ADsPath, $space . " "); } }