![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /usr/share/doc/perl-LDAP-0.56/contrib/ |
#!/usr/bin/perl -w # # recursive-ldap-delete.pl # # originally by Mike Jackson <mj@sci.fi> # shortened by Peter Marschall <peter@adpm.de> # based on ideas by Norbert Kiesel <nkiesel@tbdetworks.com> # # ToDo: check errors, handle references, .... use strict; use Net::LDAP; my $server = "localhost"; my $binddn = "cn=directory manager"; my $bindpasswd = "foobar"; my $delbranch = "ou=users,dc=bigcorp,dc=com"; # branch to remove my $ldap = Net::LDAP->new( $server ) or die "$@"; $ldap->bind( $binddn, password => $bindpasswd, version => 3 ); my $search = $ldap->search( base => $delbranch, filter => "(objectclass=*)" ); # delete the entries found in a sorted way: # those with more "," (= more elements) in their DN, which are deeper in the DIT, first # trick for the sorting: tr/,// returns number of , (see perlfaq4 for details) foreach my $e (sort { $b->dn =~ tr/,// <=> $a->dn =~ tr/,// } $search->entries()) { $ldap->delete($e); } $ldap->unbind();