見出し画像

#116 復元可能なユーザーを選択して、復元する

※今回は Google Workspace の管理者向けのプログラムです。管理者権を持っていないユーザーには使えないプログラムです。


はじめに

Google Workspace の管理コンソールで「ユーザーリスト - 管理コンソール」で「その他のオプション」→「最近削除されたユーザー」と選択すると、削除されたものの復元可能なユーザーの一覧が、下図のように表示されます。

復元できるユーザーが一覧表示される

しかしながら、上図で「+ フィルタを追加」と表示されているものの、「最近削除されたユーザー」で絞り込んでいると、更に絞り込みを行えません。😢

年度末や年度初めで大量にユーザーが削除されるタイミングだと、上図の一覧に大量のユーザーが表示されていて、誤って削除したユーザーを復元しようとしても、なかなか目的のユーザーを見つけにくくなっています。
今回のプログラムは、そんな状況で目的のユーザーを探し、復元するためのものです。

同じような悩みを感じていた人は使ってみてください。

作成したプログラム

作成したプログラムは、Google スプレッドシートに埋め込んであります。以下の URL にアクセスして、自身のGoogle ドライブにファイルをコピーしてください。

  • アカウントの復元は、特権管理者でしか行えないので、Google Workspace の特権管理者でログインした状態でコピーしてください。

作成したスプレッドシート
  • https://bit.ly/3vs0Yho
    → 利用件数を確認するために Bitly の短縮 URL で掲載しています。

なお、プログラムをはじめて実行する際には、アカウントによる確認作業が必要になります。詳しくは以下の投稿をご覧ください。

シート「アカウントの復元」に操作方法を説明していますが、Google スプレッドシートに追加されたメニュー「ユーザーの復元」を順番に選択することで、ユーザーを復元できます。

追加されたメニュー「ユーザーの復元」

⑴ 復元可能なユーザーを一覧化

スプレッドシートに追加されたメニューから「ユーザーの復元」→「削除されているユーザーの一覧を作成」を選択すると、現在日時に応じたシート名でシートが追加され、復元可能なユーザーの一覧として、以下の情報がスプレッドシートに出力されます。

  • 連番

  • ユーザーのメインのメールアドレス。

  • ユーザーの姓。

  • ユーザーの名。

  • ユーザーのアカウントが作成された時刻。

  • ユーザーが最後にユーザーのアカウントにログインした日時。

  • ユーザーのアカウントが削除された時刻。

  • ユーザーの一意の ID。

⑵ 復元するユーザーの選択

前項で作成されたシートの一覧から復元したいユーザーを探し、復元したいユーザーの行にカーソルを置き、「ユーザーの復元」→「アクティブな行のユーザーを復元」を選択します。

下図のような確認ダイアログが表示され、「OK」ボタンを押すと、ユーザーが復元されます。

ユーザーの復元を確認するダイアログ

ユーザーを復元する際には、復元したユーザーが所属する「組織部門」を指定しなければなりませんが、任意の「組織部門」を指定する UI を実装するのが手間だったので、常に最上位の / に設定するプログラムとなっています。

復元後、管理コンソールなどで組織部門を変更してください。または、復元する「組織部門」はプログラムの冒頭 12行目で設定してあるので、この部分を変更してもいいかと思います。

復元する「組織部門」のパスは 12行目で設定している

使用している API

今回のプログラムでは、以下の API を使用しています。詳細な動作を確認したい場合には、これらを確認してください。

復元可能なユーザーを取得

ユーザーの復元

この API で指定する userKey は、メールアドレスではなく、以下 URL の id(21文字のユーザーごとに割り当てられた ID)を指定しなければなりません。

最後に

今回のプログラムは、管理者向けのプログラムなので、有用に感じられる人は少ないかと思います。毎年この時期に悩まされる内容だったので、数日前から帰宅してからプログラミングしてました… 同じように悩んでいる方の一助になればいいなと思い、公開しておきます。😅
使用にあたっては、十分に注意して行ってください。

最後に、お決まりのフレーズなどを書いておきます。

  • 一応の動作確認は行っているものの、不慮のトラブルによって損害等が生じても、責任はとれませんので予めご了承ください。

  • コメントを含めても 130行あまりのスクリプトであり、実行に際して目的外の場所への書き出しや収集などは行っていません。

  • 特別なエラー処理は行っていないので、意図しないケースでエラーが発生してしまうかもしれません。どうにもならない場合には、ご連絡ください。

わたし自身にしてみると、このような「スクリプトを作ること」が目的になっているような感じですが、このスクリプトが何かの役に立てば幸いです。
「スキ ♡」を押してもらえると、このようなプログラム作成の励みになります。😍

この記事が気に入ったらサポートをしてみませんか?