Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
nucleus
Partner - Contributor II
Partner - Contributor II

Retriving more than 1000 groupmembers from LDAP via ADsDSOObject

Hello!

I´ve been reading and testing several solutions for retrieving user/group data form AD to qlikivew. My problem is that I´m not getting the full set of groupmembers for a group that contains more than 1000 members. I´ve tried rewriting the script with a loop but it wont work.

Current script for retrieving groupmembers:

 

LET arg= NoOfRows('GroupTable');

For X = 0 to arg
LET Group = peek('GroupDN', $(X), 'GroupTable');
GroupMembers:

load distinguishedName as UserDN, '$(Group)' as GroupDN;

SELECT distinguishedName FROM 'LDAP://$(RootDse)' WHERE MemberOf='$(Group)';
next

My initial thought was to use the same method used to retrive users and groups. See example script below:

/*
Read names from Active Directory using AdsDSO.
Active Directory returns a maximum number (pagesize) of rows per call.
The loop below will get all the rows regardless of the pagesize.
*/

LET arg=chr(01); // Set search start name to a very low value
DO
GroupTable:
LOAD
  cn as FullGroupName,
  name as GroupName,
  distinguishedName as GroupDN,
  sAMAccountName as GroupUPN
;
SQL select
  cn,
  sAMAccountName,
  name,
  distinguishedName  // Fields to select
FROM 'LDAP://$(RootDse)' 
  WHERE
    objectCategory='Group'
   AND sAMAccountName>'$(arg)' // Get rows where "name" is GT the arg
   order by sAMAccountName;

EXIT DO WHEN ScriptError > 1 // Stop loop if SELECT has error
EXIT DO WHEN NoOfRows('nameTable') = 0;  // Stop loop if SELECT returns nothing
EXIT DO WHEN peek('GroupUPN') = '$(arg)';  // If the last "name" read is EQ to arg -- no more entries

LET arg=peek('GroupName'); // Set the arg to the last "name" read
trace $(arg);
LOOP

But when I try to order the result from the GroupMembers query, it fails.

Could it be that a query returning a single column/field can´t include a order by clause?

Hoping for assistance with the script.

Thanks in advance!

Johan

1 Solution

Accepted Solutions
nucleus
Partner - Contributor II
Partner - Contributor II
Author

Hello.

I´ve had some progress to this issue and managed to solve it.

By using command line net group  and landing the output in an text-file and then reading the text-file I managed to circumvent the pagesize.

See my enclosed file for further details.

View solution in original post

5 Replies
rajeshvaswani77
Specialist III
Specialist III

Hi Johan,

Were you able to solve this? I am in to a similar issue.

thanks,

Rajesh Vaswani

nucleus
Partner - Contributor II
Partner - Contributor II
Author

Hi

I haven´t put any effort in to solving this issue since I posted my request for help.

Johan

Från: Rajesh Vaswani

Skickat: den 24 september 2013 17:46

Till: Idberg, Johan

Ämne: Re: - Retriving more than 1000 groupmembers from LDAP via ADsDSOObject

QlikCommunity<http://community.qlik.com/>

Retriving more than 1000 groupmembers from LDAP via ADsDSOObject

reply from Rajesh Vaswani<http://community.qlik.com/people/rajeshvaswani77?et=watches.email.thread> in Scripting - View the full discussion<http://community.qlik.com/message/396478?et=watches.email.thread#396478>

rajeshvaswani77
Specialist III
Specialist III

thanks for reply Johan, in case i find something will let you know.

regards,

Rajesh Vaswani

nucleus
Partner - Contributor II
Partner - Contributor II
Author

I´ll post my findings or resolution on qlikcommunity.

Regards

Johan

Från: Rajesh Vaswani

Skickat: den 25 september 2013 07:08

Till: Idberg, Johan

Ämne: Re: - Retriving more than 1000 groupmembers from LDAP via ADsDSOObject

QlikCommunity<http://community.qlik.com/>

Retriving more than 1000 groupmembers from LDAP via ADsDSOObject

reply from Rajesh Vaswani<http://community.qlik.com/people/rajeshvaswani77?et=watches.email.thread> in Scripting - View the full discussion<http://community.qlik.com/message/396703?et=watches.email.thread#396703>

nucleus
Partner - Contributor II
Partner - Contributor II
Author

Hello.

I´ve had some progress to this issue and managed to solve it.

By using command line net group  and landing the output in an text-file and then reading the text-file I managed to circumvent the pagesize.

See my enclosed file for further details.