はじめに
本記事は、Google Workspaceを利用している組織のシステム管理者が、
Googleドライブにおける共有ドライブのID一覧を出力する手順について説明します。
実行結果
※上図に登場する団体・名称・ID等はすべて架空のものです。
事前準備
-
出力対象のすべての共有ドライブ対し、システム管理者(スクリプト実行者)を
「管理者」として追加します。
[Google Workspace管理コンソール] → [アプリ] → [Google Workspace] → [ドライブとドキュメントの設定] → [共有ドライブの管理] → 対象の共有ドライブの[メンバーを管理] → システム管理者のアカウントを入力 → [管理者]を選択 → [共有]
-
出力先のスプレッドシートを作成し、Apps Scriptに「Drive API」を追加します。
[Googleシート] → [新しいスプレッドシートを作成] → [拡張機能]タブ → [Apps Script]→
サービス[+] → [Drive API] → [追加]
スクリプト
Apps Scriptから下記のスクリプトを実行します。
初回実行時はプロジェクトへの承認が求められますので、許可してください。
script.gs
const act_sheet = SpreadsheetApp.getActive().getActiveSheet();
let drv_list, drv_info, drv_token;
let array = [];
function myFunction() {
array.push(["共有ドライブ", "ID"]);
// Drive APIから共有ドライブのリストを取得、pageTokenがある限り繰り返し
do {
drv_list = Drive.Drives.list({
maxResults: 100,
pageToken: drv_token,
useDomainAdminAccess: true
});
// 共有ドライブのリストから共有ドライブ名、IDを取得
for (let i = 0; i < drv_list.items.length; i++) {
drv_info = drv_list.items[i];
array.push([drv_info.name, drv_info.id]);
}
drv_token = drv_list.nextPageToken;
} while (drv_token);
// 配列をGoogleシートに反映
act_sheet.clear();
act_sheet.setFrozenRows(1);
act_sheet.getRange(1, 1, array.length, array[0].length).setValues(array);
}
参考
- Drives: list | Drive API | Google Developers
https://developers.google.com/drive/api/v2/reference/drives/list