🚀

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

に公開

はじめに

GlideRecordSecureやCanReadを簡単に確認する方法を探している中で、スクリプトを活用できないかと考えました。ここでは、その模索と試行錯誤の過程について記します。

スクリプト

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

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

注意点

スクリプトエラーが発生すると、なりすましセッションが終了しない場合があります。そのため、スクリプトでなりすましを行う際は、必ず try-catch などのエラーハンドリングを使用し、エラー発生後も処理を続行できるようにする必要があります。

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