Skip to content

Commit 49ccc34

Browse files
authored
deactivateDormantUsers.js
**ServiceNow Background Script** to automatically **deactivate users** who haven't logged in for a specified number of days.
1 parent bf7cbd4 commit 49ccc34

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* Deactivate Dormant Users (Parameterized)
3+
*
4+
* Deactivates users in ServiceNow who have not logged in for the specified number of days.
5+
* Example: deactivateDormantUsers(60);
6+
*/
7+
8+
function deactivateDormantUsers(daysInactive) {
9+
if (!daysInactive || isNaN(daysInactive)) {
10+
gs.error("❌ Please provide a valid number of days. Example: deactivateDormantUsers(90);");
11+
return;
12+
}
13+
14+
var cutoff = new GlideDateTime();
15+
cutoff.addDaysUTC(-daysInactive);
16+
17+
var gr = new GlideRecord('sys_user');
18+
gr.addNotNullQuery("last_login_time");
19+
gr.addQuery('last_login_time', '<', cutoff);
20+
gr.addQuery('active', true);
21+
gr.query();
22+
23+
var count = 0;
24+
while (gr.next()) {
25+
gr.active = false;
26+
gr.update();
27+
count++;
28+
}
29+
30+
gs.info('✅ Deactivated ' + count + ' users inactive for over ' + daysInactive + ' days (before ' + cutoff.getDisplayValue() + ').');
31+
}
32+
33+
// Example run
34+
// deactivateDormantUsers(90);

0 commit comments

Comments
 (0)