antwoord op vraag 2: controle met : dsquery * cn=...,ou=labo,DC=iii,DC=hogent,DC=be -attr member
. . . # implementatie functie bind_object: zie reeks 6, oefening 4

@ARGC >= 2 or die "twee argumenten vereist: criterium groep\n";
my $groep=bind_object("cn=" . $ARGV[0] . ",ou=labo,DC=iii,DC=hogent,DC=be");
$groep->GetInfoEx(["member"],0);

my $ADOconnection = Win32::OLE->CreateObject("ADODB.Connection");
   $ADOconnection->{Provider} = "ADsDSOObject";
   $ADOconnection->{Properties}->{"User ID"}          = ". . ."; # vul in of zet in commentaar
   $ADOconnection->{Properties}->{"Password"}         = ". . ."; # vul in of zet in commentaar
   $ADOconnection->{Properties}->{"Encrypt Password"} = True;
   $ADOconnection->Open();                                       # mag je niet vergeten
my $ADOcommand = Win32::OLE->CreateObject("ADODB.Command");
   $ADOcommand->{ActiveConnection}      = $ADOconnection;        # verwijst naar het voorgaand object
   $ADOcommand->{Properties}->{"Page Size"} = 20;

my $sBase  = "LDAP://";
   $sBase .= "193.190.126.71/" unless (uc($ENV{USERDOMAIN}) eq "III");        # als je niet in het domein zelf zit
   $sBase .= "DC=iii,DC=hogent,DC=be";
my $sFilter     = "(&(description=" . $ARGV[1] . ")(objectclass=user)(objectcategory=person))";
my $sAttributes = "distinguishedName";
my $sScope      = "subtree";

   $ADOcommand->{CommandText} = "<$sBase>;$sFilter;$sAttributes;$sScope";
my $ADOrecordset = $ADOcommand->Execute();

my @lijst;
until ( $ADOrecordset->{EOF} ) {
    push @lijst,$ADOrecordset->Fields("distinguishedName")->{Value};
    $ADOrecordset->MoveNext();
}
$ADOrecordset->Close();
$ADOconnection->Close();

$groep->PutEx(2,"member",\@lijst);
$groep->SetInfo() unless Win32::OLE->LastError();