🚀

【Servicenow】スクリプトでなりすまし/代理操作を行う方法

2025/01/06に公開

はじめに

GlideRecordSecureやCanReadを手軽に確認できる方法を模索していた際に、スクリプトでできないかと模索していました。模索した結果や試行錯誤の結果を書いていきます。

スクリプト

代理操作するだけであれば以下のスクリプトで実行できます。

var userid = 'user_sys_id';
var og = gs.getSession().impersonate(userid); //なりすまし開始
gs.getSession().impersonate(og); //なりすまし終了

注意点

なりすましが終了する前にスクリプトエラーが発生した場合、セッションのなりすましが終了しません。そのため、なりすましをスクリプトで行う際には必ずtrycatch等を使用し、エラー後も処理が実行できるようにする必要があります。

var userid = 'user_sys_id';
try {
    var og = gs.getSession().impersonate(userid); //なりすまし開始
    throw new Error('エラー');
    gs.getSession().impersonate(og); //なりすまし終了
} catch (error) {
    gs.info(error);
    gs.getSession().impersonate(og); //なりすまし終了
}

Discussion