John Smith
John Smith

Reputation: 397

Count total users Google Apps domain

Hi i found this example that prints out users givenname in the logger. I would need to modify it to just count the total number of users and store it in a variable. Could that be done?

function listAllUsers() {
  var pageToken, page;
  do {
    page = AdminDirectory.Users.list({
      domain: 'example.com',
      orderBy: 'givenName',
      maxResults: 100,
      pageToken: pageToken
    });
    var users = page.users;
    if (users) {
      for (var i = 0; i < users.length; i++) {
        var user = users[i];
        Logger.log('%s (%s)', user.name.fullName, user.primaryEmail);
      }
    } else {
      Logger.log('No users found.');
    }
    pageToken = page.nextPageToken;
  } while (pageToken);
}

Upvotes: 2

Views: 506

Answers (1)

Waqar Ahmad
Waqar Ahmad

Reputation: 3730

You just need to sum up the count of all the users returned in every api call. Here is how you modified code should look like.

Before running this code, you need to enable Admin Directory API available in Resources > Advance Google Services... and Admin SDK API in Google Developer Console. Here is more detail how to enable it.

After running this function in Google Apps Script Editor, Check View > Logs. This code can be run only by a user who has Super Admin Privilege in your Google Apps Account.

function getAppsUsersCount() {
  var numUsers = 0;
  var pageToken, page;
  do {
    page = AdminDirectory.Users.list({
      customer : 'my_customer',
      maxResults: 500,
      fields : 'nextPageToken,users/id',
      pageToken: pageToken
    });
    var users = page.users;
    if(users){      
      numUsers += users.length;
    }
    pageToken = page.nextPageToken;
  } while (pageToken);
  Logger.log(numUsers);
  return numUsers;
}

Upvotes: 1

Related Questions