Skip to content

Commit 42c690c

Browse files
authored
Auto-Deactivate Users Not Logged In for X Days (#2014)
1 parent bf7cbd4 commit 42c690c

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-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);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# 🧹 ServiceNow Dormant User Cleanup
2+
3+
**ServiceNow Background Script** to automatically **deactivate users** who haven't logged in for a specified number of days.
4+
5+
## 🚀 Usage
6+
1. Navigate to **System Definition → Scripts - Background**.
7+
2. Paste the script and execute:
8+
```javascript
9+
deactivateDormantUsers(90);

0 commit comments

Comments
 (0)