LoginSignup
0
1

More than 1 year has passed since last update.

【GAS】Googleドライブ:共有ドライブID一覧出力

Posted at

はじめに

本記事は、Google Workspaceを利用している組織のシステム管理者が、
Googleドライブにおける共有ドライブのID一覧を出力する手順について説明します。

実行結果

image.png

※上図に登場する団体・名称・ID等はすべて架空のものです。

事前準備

  1. 出力対象のすべての共有ドライブ対し、システム管理者(スクリプト実行者)を
    「管理者」として追加します。

    [Google Workspace管理コンソール] → [アプリ] → [Google Workspace] → [ドライブとドキュメントの設定] → [共有ドライブの管理] → 対象の共有ドライブの[メンバーを管理] → システム管理者のアカウントを入力 → [管理者]を選択 → [共有]
    AdminConsole.png

  2. 出力先のスプレッドシートを作成し、Apps Scriptに「Drive API」を追加します。

    [Googleシート] → [新しいスプレッドシートを作成] → [拡張機能]タブ → [Apps Script]→
    サービス[+] → [Drive API] → [追加]
    AppsScript.png

スクリプト

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);
}

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1