On 7 Dec 2009, at 09:38, Lupin Deterd wrote:
> Hi,
>
> What is the correct syntax of adding an OU using Net::LDAP, I tried
> the following:
> !/usr/bin/perl -w
>
> use 5.10.1; use strict;
>
> use Net::LDAP; use Data::Dumper;
>
> my $ldap = Net::LDAP->new("192.168.183.2") or die "$@"; my $mesg =
> $ldap->bind( "cn=admin,dc=lab,dc=net", password => 'xxx' );
>
> $mesg = $ldap->add( "ou=Users,dc=lab,dc=net", attrs => [
>
> 'ou' => 'dc=Users',
> 'objectClass' => [ 'top', 'organizationalUnit' ]
> ]
>
> );
>
> say $mesg->error; say $mesg->code;
>
> And got the following error:
>
> value of naming attribute 'ou' is not present in entry 64
>
> However using the ldapmodify command line, and using this following ldif,
> works:
>
> dn: ou=Users,dc=lab,dc=net changetype: add objectclass: top
> objectclass: organizationalUnit ou: Users
In that case, your add call should say:
'ou' => 'Users',
instead of:
'ou' => 'dc=Users',
Cheers,
Chris