How to add a user to a group by using background script

Shaik nabi khaj
Tera Expert

 

Hi,

 

I have a reqirement called

How can we add a user to a group by using background script.

 

Kindly provide ur inputs it is on priority.

 

Best Regards,

Shaik Nabi Khaja.

2 ACCEPTED SOLUTIONS

Hi @Shaik nabi khaj 

Then use script provided by me.

Just copy past user and group sys_id where ever mentioned.

 


Please Mark My Response as Correct/Helpful based on Impact
Regards,
Gunjan Kiratkar
2X ServiceNow MVP
Community Rising Star 2022
Youtube : ServiceNow Guy

View solution in original post

Hi @Shaik nabi khaj ,

Apply filter on sys_user table for those users based on email or user ID.

Copy that encoded query as below, 

GunjanKiratkar_0-1672388410387.png

Script :- Add group sys_id only

Replace below encoded query with yours

 

var grUser = new GlideRecord("sys_user");
grUser.addEncodedQuery("emailINshaun.tait@example.com,john.smith@example.com");
grUser.query();
while (grUser.next()) {
    var gr = new GlideRecord('sys_user_grmember');
    gr.initialize();
    gr.group = 'group sys_id';
    gr.user = grUser.sys_id;
    gr.insert();
}

 

 


Please Mark My Response as Correct/Helpful based on Impact
Regards,
Gunjan Kiratkar
2X ServiceNow MVP
Community Rising Star 2022
Youtube : ServiceNow Guy

View solution in original post

8 REPLIES 8

Hi,

It is working fine.

But now i want to add 10 users to same group at a time.

How can we do.

 

Best Regards,

Shaik nabi Khaja.

For that you can use below script

function addUserToGroup(usr_list,id){//usr_list: comma sepaerated sys_ids of users, id: sys_is of group
	var usersAdd = usr_list.split(",");
	var newgrpmember;
	var newgrpmemberIsPresent;
	for (var i = 0; i < usersAdd.length; i++)
	{
		newgrpmemberIsPresent = new GlideRecord('sys_user_grmember');
		newgrpmemberIsPresent.addQuery('group',id);
		newgrpmemberIsPresent.addQuery('user',usersAdd[i]+"");
		newgrpmemberIsPresent.query();
		if(!newgrpmemberIsPresent.next())
		{
			newgrpmember = new GlideRecord('sys_user_grmember');
			newgrpmember.initialize();
			newgrpmember.group =id;
			newgrpmember.user=usersAdd[i]+"";
			newgrpmember.insert();
		}
	}
}
addUserToGroup("user1sys_id,user2sys_id","groupsys_id");//add comma seperated sys_ids of user as many as you want and second parameter is group's sysid

Thanks and Regards,

Saurabh Gupta

Hi @Shaik nabi khaj ,

Apply filter on sys_user table for those users based on email or user ID.

Copy that encoded query as below, 

GunjanKiratkar_0-1672388410387.png

Script :- Add group sys_id only

Replace below encoded query with yours

 

var grUser = new GlideRecord("sys_user");
grUser.addEncodedQuery("emailINshaun.tait@example.com,john.smith@example.com");
grUser.query();
while (grUser.next()) {
    var gr = new GlideRecord('sys_user_grmember');
    gr.initialize();
    gr.group = 'group sys_id';
    gr.user = grUser.sys_id;
    gr.insert();
}

 

 


Please Mark My Response as Correct/Helpful based on Impact
Regards,
Gunjan Kiratkar
2X ServiceNow MVP
Community Rising Star 2022
Youtube : ServiceNow Guy

var gr = new GlideRecord('sys_user_grmember');
    gr.initialize();
    gr.group = 'group sysID';
    gr.user = "user sysID";
    gr.update();