I need to identify groups where the group manager is NOT a group member

Ken61
Giga Guru

Hello All,

I'm trying to retrieve a list of all groups where the group manager is not a member of the group. However, I am unable to get this done.

I even came across below solution from the community, but it's not working. 

 

 
I would appreciate your guidance on how to proceed with this.

 

Thank You.
7 REPLIES 7

Ankur Bawiskar
Tera Patron
Tera Patron

@Ken61 

did you try running script in background and see if you get some records

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

sunil maddheshi
Tera Guru

@Ken61 Hi try this code in background script:

var groupGR = new GlideRecord('sys_user_group');
groupGR.addNotNullQuery('manager');
groupGR.query();

while (groupGR.next()) {
    var manager = groupGR.manager;
    var groupID = groupGR.sys_id;

    var grMember = new GlideRecord('sys_user_grmember');
    grMember.addQuery('group', groupID);
    grMember.addQuery('user', manager);
    grMember.query();

    // If no match is found, manager is not a group member
    if (!grMember.hasNext()) {
        gs.print('Group: ' + groupGR.name + ' | Manager: ' + manager.getDisplayValue());
    }
}

Please mark correct/helpful if this help you

Muhammad Salar
Giga Sage

 

Hi, Try this code
Background Script:

var groupGr = new GlideRecord('sys_user_group');
groupGr.addNotNullQuery('manager');
groupGr.query();
while (groupGr.next()) {

    var memGr = new GlideRecord('sys_user_grmember');
    memGr.addQuery('group', groupGr.sys_id);
    memGr.addQuery('user', groupGr.manager);
    memGr.query();

    if (!memGr.hasNext()) {
        gs.print(groupGr.name + ' - Manager not a member: ' + groupGr.manager.getDisplayValue());
    }
}

Script Include function:
var result = [];

var groupGr = new GlideRecord('sys_user_group');
groupGr.addNotNullQuery('manager');
groupGr.query();

while (groupGr.next()) {
var mngr = groupGr.manager;

var memGr = new GlideRecord('sys_user_grmember');
memGr.addQuery('group', groupGr.sys_id);
memGr.addQuery('user', mngr);
memGr.query();

if (!memGr.hasNext()) {
result.push(groupGr.sys_id.toString());
}
}

return result.join(',');