Delete all users where userID = Null

-Andrew-
Kilo Sage

Hi all,

 

I recently included a field into our LDAP import, this has forced 42,000 records to be imported to the Sys_User table.

 

I need to remove these, i don't mind deleting all users and running a new import (this would be the better option).

 

Does anyone know how to do this?

 

Thanks,

Andrew

1 ACCEPTED SOLUTION

Slight modifications

Firstly id recommmend you do this in batches, lets say 10k at a time

 

function removeComputers() {
var gr = new GlideRecord("sys_user");
gr.addEncodedQuery('user_name=null');

gs.setLimit(10000);

gr.setWorkflow(false);
gr.query();
var deleteCount = 0;
while(gr.next()){

gr.deleteRecord();
deleteCount++;
}
gs.print('Records Deleted: '+ deleteCount);
}

 

 

 

Also noticed something odd at the start of your script, make sure its not a copy paste error, you are calling a different function and the deletion function has s different name.

 

deleteSys_user();
function removeComputers() {
-Anurag

View solution in original post

12 REPLIES 12

I made a mistake too instead of gr i wrote gs

it should be

gr.setLimit(10000);

 

Use that and see if it works

-Anurag

Yeah all good - thanks.

 

However, i must say it takes a very long time. There's no way to speed this up is there?

 

 

Set workflow false is the way to speed it up, it ensures that no business rules run for the transaction. 

Since it is a one time thing i feel it is fine.

-Anurag