Google グループアドレス・所属メンバー・権限取得スクリプト
はじめまして、株式会社Mobility Technologies IT戦略本部 IT戦略部 の宇佐美です。
このページでは、Google グループアドレスの取得、およびグループアドレスに所属するメンバーと権限を一括で取得するスクリプトをご紹介します。
概要
Googleのグループアドレスですが、Google Workspaceにはグループの一覧をエクスポートする手段がなく、どのグループに、どのメンバーが所属しているかを一覧で確認する手段がありません。
なお、同様のスクリプトがないか検索すると、Googleの仕様で200行までしか取得できず、全件取得するにはページネーションを考慮する必要があります。
このページで紹介するスクリプトは、ページネーションを気にせずに一覧を取得できる方法になります!
準備
スクリプト実行するには、ユーザー閲覧とドライブ管理者権限が必要です。両方の権限をもつGoogleアカウントをご用意ください。
リストを表示するためのスプレッドシートを新規作成しておきます。
スプレッドシートのファイル名を任意で入力します。
作成したスプレッドシートの「拡張機能」→「Apps Script」をクリックします。
プロジェクトの名前を任意で入力してください。
Apps Script画面の、サービスを開きます。
「Admin SDK API」の「directory_v1」を選択し、「追加」をクリックします。
同様に、サービスから「Groups Settings API」の「v1」を選択し、「追加」をクリックします
作成
いよいよ作成です!
ファイル名を決めて、以下のコードを貼り付けて保存してください。
//スプレッドシートにメニューを追加
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu("実行");
menu.addItem("グループ・権限取得", "listAllGroupsMembers");
menu.addToUi();
}
function listAllGroupsMembers() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var k = 2;
var pageToken, page;
do {
page = AdminDirectory.Groups.list({
domain: 'XXXXXX', //利用中ドメインに書き換えてください
maxResults: 300,
pageToken: pageToken
});
var groups = page.groups;
if (groups) {
for (var i = 0; i < groups.length; i++) {
var group = groups[i];
var members = AdminDirectory.Members.list(group.email).members;
if (members){
for (var l = 0;l < members.length;l++){
var member = members[l];
if (sheet.getRange(k,2) + sheet.getRange(k,3) == group.email + member.email){
}else{
sheet.getRange(k,1).setValue(group.name);
sheet.getRange(k,2).setValue(group.email);
sheet.getRange(k,3).setValue(member.email);
sheet.getRange(k,4).setValue(member.role);
var user;
try{
user = AdminDirectory.Users.get(member.email);
if (user){
sheet.getRange(k,5).setValue(user.name.fullName);
}
}catch(e){
Logger.log(e.message);
}
k ++;
}
}
}
}
} else {
Logger.log('グループがありません');
}
pageToken = page.nextPageToken;
} while (pageToken);
MailApp.sendEmail("メールアドレス", "処理完了", "listAllGroupMembersの処理が完了しました。");
// 「メールアドレス」に処理が完了したら、完了メールを通知させたメールアドレスを適宜入力してください
}
図のように「onOpen」となっていることを確認し、「実行」をクリックしてください。
以上で作成完了です!
動作
スプレッドシートを読み込み直すと、「実行」→「グループ・権限取得」のボタンが追加されているので、クリックしてください。
「グループ・権限取得」をクリックすると初回のみ、承認の権限の確認が求められます
権限付与後、もう一度「実行」→「グループ・権限取得」をクリックしてください。スクリプトが実行されます。
※実行中は「スクリプトを実行しています」と表示されます。
完了すると、「スクリプトが終了しました」と表示されます。
また、スクリプトで指定したメールアドレスに、完了メールが届きます!
注意点
グループアドレスの数が多い場合、処理完了までに時間がかかります。
※2023/3/10時点の仕様に基づきます
最後に
私たち部門では、部門の工数削減のため、以下のような取り組みを積極的に行っています。これまでのご経験を活かせるような業務やタスクが多数あります!
利用できるシステム・アプリの導入
利用してみたいシステム・アプリの検証等
MoTでは、共に働く仲間を募集中です。
興味がある方は、お気軽にご連絡ください!