Impersonating a user in server script and impersonating back to the original user

Eliz Kotadia
ServiceNow Employee
ServiceNow Employee

Hello, I need help with impersonating a user in server script and impersonating back to the original user. Whats the best way to accomplish this ?
I have tried GlideImpersonate. Here is the code

gs.addInfoMessage(gs.getUserDisplayName());
var y =  new GlideImpersonate().impersonate('a8f98bb0eb32010045e1a5115206fe3a');
gs.addInfoMessage(gs.getUserDisplayName());
new GlideImpersonate().impersonate(y);
gs.addInfoMessage(gs.getUserDisplayName());

The output i get when i try to execute in background scripts is

find_real_file.png

But, when i try to do the same in script include, I get the following output

find_real_file.png

Here, the script is able to impersonate to Abraham Lincoln, but isn’t able to impersonate back to System Administrator.
Can you please tell me where am i going wrong ?

5 REPLIES 5

Omkar Mone
Mega Sage

Hi 

Maybe 

gs.addInfoMessage(gs.getUserDisplayName()); //admin
var y = new GlideImpersonate().impersonate('a8f98bb0eb32010045e1a5115206fe3a');//stored abraham in y
gs.addInfoMessage(gs.getUserDisplayName()); //abraham because impersonated
new GlideImpersonate().impersonate(y); //again impersonating to abraham // here try sys_id of admin
gs.addInfoMessage(gs.getUserDisplayName());//same as expected.(abraham)

Hope it helps.

Mark Correct if it does.

Regards,

Omkar Mone

www.dxsherpa.com

In variable y, the sys_id of the user that was logged in prior to the impersonation request is stored.

Please check https://docs.servicenow.com/bundle/kingston-application-development/page/app-store/dev_portal/API_re...

Hi 

Is the value passed inside first impersonate that of Abraham or System Admin?

Hello,

Its of Abraham.