Need to remove a user from specific group if users not logged in 3o days

varma2
Mega Sage

Hi All,

 

Need to remove a user from specific group if users not logged in 3o days.

Ex : I have group called ( ITSM_Group ) in that group we have multiple users, If any user not logged in more than 30days we need to remove the user from the group.

Please suggest,

Thanks ALL,

 

1 ACCEPTED SOLUTION

Hi,

You can try this as well for better optimization

var arr = [];

var gr = new GlideRecord("sys_user");
var gdt = new GlideDateTime();
gdt.addDays(-30);// User not logged in 30 days
gr.addQuery("last_login_time","<=",gdt);
gr.addActiveQuery();
gr.query();
while(gr.next()){
	arr.push(gr.getUniqueValue());
}

var grp = new GlideRecord("sys_user_grmember");
grp.addQuery("user", "IN", arr.toString());
grp.addQuery("group", "b85d44954a3623120004689b2d5dd60a");
grp.query();
grp.deleteMultiple();

Regards
Ankur

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

View solution in original post

9 REPLIES 9

Kalyani Jangam1
Mega Sage
Mega Sage

In Group member table for ITSM_Group, you can use below query

find_real_file.png

Please mark helpful, if it will help you.

OlaN
Giga Sage
Giga Sage

Hi,

You can create a Flow that runs daily, that looks at the group member last login date, and removes the membership if needed.

Kalyani Jangam1
Mega Sage
Mega Sage

you can use this script also

var gr = new GlideRecord("sys_user");
var gdt = new GlideDateTime();
gdt.addDays(-30);// User not logged in 30 days
gr.addQuery("last_login_time","<=",gdt);
gr.addActiveQuery();
gr.query();
gs.info("row------"+gr.getRowCount());
while(gr.next()){
var grp=new GlideRecord("sys_user_grmember");
grp.addQuery("user",gr.sys_id);
grp.query();
while(grp.next()){
if(grp.group=='b85d44954a3623120004689b2d5dd60a'){ // Your Group sys_id
gs.info("Group member rowcount---"+grp.user.name); // No of user not logged in 30 days
}
}
}

Hi,

I need to delete multiple records but above code has loop and it only delete one record at a time.

 

Please suggest.

Thanks,