Google Apps Scriptでユーザの一括作成・削除をする【GAS】

検証用のGoogle Workspaceテナントを用意して、仮のユーザの一括作成や一括削除を行うことがままあります。手作業で数百人の検証用ユーザを作成・削除するのは手間が掛かりすぎます。

ということで、その際に利用するちょっとしたスクリプトを用意しました。

利用するスプレッドシート等

サービスとして、Admin SDKを追加する必要があります。Admin SDKを利用するため、ユーザロールか?特権管理者等のロールを持つ管理者でなければ利用することは出来ません

検証用なのでパスワードは固定で、changePasswordAtNextLoginについてはfalseでも良いのではないかとは思います。

Google Apps ScriptのAdmin SDKでユーザ作成フォームを作る【GAS】

ソースコード

ユーザ一括作成

userシートの内容を読み取って一括で作成していきます。AdminDirectory.Users.insertに対してメアドや姓名を渡して構築したものを使って追加していきます。

通常は、AdminDirectory.Users.insert(user)で良いのですが、競合アカウントがあった場合強制的に置き換えられる恐れがあるため、resolveConflictAccount:trueを追加しています。GWS側の設定に準拠するので、事前に設定を変えておく必要があります。

競合アカウントを検知するとそこで処理が止まります。

図:競合アカウントを検出した場合のメッセージ

ユーザ一括削除

アカウントの削除は簡単で、AdminDirectory.Users.removeに対してメアドを渡すだけで削除することが可能です。

ユーザ一覧を取得する

ちなみに、Google Workspaceのテナントに登録されたユーザの情報を取得したい場合には以下のようなコードになります。

1回あたり最大500件まで取得できますがpageTokenの値がある場合次の500件を取得するようにループを設定しています。page.user以下に色々な情報が詰まっており、これがここのユーザの属性情報になります。

以下の動的グループのエントリにもありますが、独自に追加したカスタム属性も取得することができ、user.customSchemas以下に独自設定した属性が収められてるので、これを指定することで取得できます。

属性情報が空っぽの場合エラーとなるので、isnotempty関数を噛ませてNullチェックをし空で返すようにしています。

Google Workspaceの動的グループで楽をしよう【GAS】

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)