Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

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
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();


      }


}