How to remove users from group and make user profile Inactive
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-23-2024 08:26 PM
Hi All,
I have a requirement to remove the users from particular group and also to make the user profile Inactive if the user has not logged in for more than 30 days. How to do this? also please do provide the code required to do this if possible.
Thanks in advance.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-23-2024 08:45 PM
Hello,
Please check below discussions. They might be able to help you.
https://www.servicenow.com/community/itsm-forum/need-to-remove-a-user-from-specific-group-if-users-n...
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0790116
https://www.servicenow.com/community/developer-forum/remove-user-group-roles-if-not-logged-in-last-3...
If my answer helped you in any way please mark it as correct or helpful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-23-2024 08:51 PM
For removing the users from the group, go to type sys_user_group.LIST on application Navigator, it will take you to group table , Find >open> members > remove.
For inactive user if not logged in 30 days --> Create a scheduled job.
var groupName = "Your Group Name";
var groupSysId = '';
var daysThreshold = 30; // Users who haven’t logged in for more than 30 days
// Fetch Group Sys ID
var grGroup = new GlideRecord('sys_user_group');
grGroup.addQuery('name', groupName);
grGroup.query();
if (grGroup.next()) {
groupSysId = grGroup.getUniqueValue();
}
// Check for users that haven’t logged in for the past 30 days
var grUser = new GlideRecord('sys_user');
grUser.addQuery('last_login_time', '<', gs.daysAgoStart(daysThreshold)); // Adjust based on your Sys_User table’s relevant field
grUser.query();
while (grUser.next()) {
// Check if user is part of the group
var memberQuery = new GlideRecord('sys_user_grmember');
memberQuery.addQuery('group', groupSysId);
memberQuery.addQuery('user', grUser.getUniqueValue());
memberQuery.query();
if (memberQuery.next()) {
// Remove user from group
memberQuery.deleteRecord();
}
// Mark the user as inactive
grUser.active = false;
grUser.update();
}