We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

background script to copy members from one grp to other

kbanerje
Giga Guru

Hi,

I have two grps one newly created as permission type   grp(X) and another existing support type grp (Y).

The support type grp(Y) has 900 + users.   I need all the members of Y grp to be copied to X grp through background script.

Can any one help us with the background script for this?

1 ACCEPTED SOLUTION

Geoffrey2
ServiceNow Employee

var groupXid = 'sys_id_of_group_X';


var groupYid = 'sys_id_of_group_Y';


var newGr;


var gr = new GlideRecord('sys_user_grmember');


gr.addQuery('group', groupYid);


gr.query();


while (gr.next()) {


  newGr = new GlideRecord('sys_user_grmember');


  newGr.initialize();


  newGr.group = groupXid;


  newGr.user = gr.user;


  newGr.insert();


}


View solution in original post

5 REPLIES 5

above Script works great, except has a one small issue what if the member already exist in target / cop_to group (it will foce duplicate). Below script should address the issue



//sys_id of the group you are copying from  


var copy_from = '287ebd7da9fe198100f92cc8d1d2154e';




//sys_id of the group you are copying to  


var copy_to = '8cee8950db01320017c278eebf961993';




var grUser = new GlideRecord("sys_user_grmember");


grUser.addQuery("group", copy_from);


grUser.query();


while (grUser.next()) {


      gs.log("Members Identified: " + grUser.user);


      //Check if user already exist


      var grUserExist = new GlideRecord("sys_user_grmember");


      grUserExist.addQuery("user", grUser.user);


      grUserExist.addQuery("group", copy_to);


      grUserExist.query();


      if (!grUserExist.next()) {


              gs.log("Add Members: " + grUser.user);


              var rec = new GlideRecord('sys_user_grmember');


              rec.initialize();


              rec.group = copy_to;


              rec.user = grUser.user.sys_id;


              rec.insert();


      }


}