【超効率化】GASでGoogleドライブの共有フォルダを一括管理!初心者でも今日からできる完全ガイド

はじめに:Googleドライブ共有フォルダ、管理できていますか?

  • いつの間にかフォルダがぐちゃぐちゃ

  • 誰がアクセス権を持っているかわからない

  • 共有設定の見直しが面倒すぎる

こういった悩み、Googleドライブを使っていると必ずと言っていいほど発生します。
そして放置しておくと、情報漏洩リスク業務効率の低下を引き起こすことに…。

そこで登場するのが、Google Apps Script(GAS)を使ったドライブ共有フォルダ管理ツールです。

この記事では、GAS初心者でも今日からできる、
ドライブ共有フォルダの一括管理・整理・アクセス権見直しの方法を、実例付きでわかりやすく解説します!

「こんなに簡単なら、もっと早くやればよかった!」と思うはずですよ。


なぜGASでドライブ共有フォルダを管理すべきなのか?

■ 手動管理は非効率&ミスのもと

GoogleドライブのUIからフォルダをひとつひとつ開いてアクセス権を確認して…
これ、一つ二つならいいけど、数十個、数百個になると地獄ですよね。

しかもヒューマンエラーが発生しやすく、
大事なフォルダをうっかり「全員に公開」にしてしまうリスクも。

■ GASなら、瞬時に・正確に・一括で管理できる

GASを使えば、次のようなことが自動でできます。

  • 指定フォルダ内のサブフォルダ・ファイルをリスト化

  • 各ファイル・フォルダの共有設定を取得

  • 特定ユーザーへの共有を一括解除

  • 所有者の一括変更

  • 共有設定のレポート自動生成

しかも無料。しかもカスタマイズ自在。
これを使わない理由、ありません!


ステップ1:まずは対象フォルダを決めよう

まず、管理したいドライブの「共有フォルダ」のIDを取得します。

  1. Googleドライブで対象フォルダを開く

  2. URLから「folders/」の後ろにある文字列をコピー
    例:https://drive.google.com/drive/folders/【ここがID】

これを、GASに渡して管理対象にします。


ステップ2:GASで共有フォルダをスキャンするコードを書く

次に、GASエディタ(Google Apps Script)を開き、新規プロジェクトを作成し、以下のコードを貼り付けます。

// 対象フォルダIDを指定
const FOLDER_ID = 'あなたのフォルダIDをここに';

// フォルダ内の全ファイルとフォルダの情報を取得
function scanSharedFolder() {
  var folder = DriveApp.getFolderById(FOLDER_ID);
  var files = folder.getFiles();
  var folders = folder.getFolders();
  
  var report = [];

  // ファイル情報取得
  while (files.hasNext()) {
    var file = files.next();
    report.push(getFileInfo(file));
  }

  // サブフォルダ情報取得
  while (folders.hasNext()) {
    var subFolder = folders.next();
    report.push(getFileInfo(subFolder));
  }

  Logger.log(report);
}

// 個別ファイルの共有情報を取得
function getFileInfo(file) {
  var editors = file.getEditors().map(function(user) {
    return user.getEmail();
  });
  var viewers = file.getViewers().map(function(user) {
    return user.getEmail();
  });

  return {
    name: file.getName(),
    url: file.getUrl(),
    editors: editors,
    viewers: viewers
  };
}

このコードを実行すると、
対象フォルダ配下のファイル・フォルダの共有設定一覧がコンソールに出力されます。


ステップ3:共有設定をエクセル風に一覧化する

せっかくなので、スプレッドシートにも出力してみましょう。

続けて、こんな関数を追加します。

function exportSharedFolderReport() {
  var folder = DriveApp.getFolderById(FOLDER_ID);
  var files = folder.getFiles();
  var folders = folder.getFolders();
  
  var ss = SpreadsheetApp.create('ドライブ共有管理レポート');
  var sheet = ss.getActiveSheet();
  sheet.appendRow(['名前', 'URL', '編集者', '閲覧者']);
  
  while (files.hasNext()) {
    var file = files.next();
    sheet.appendRow([
      file.getName(),
      file.getUrl(),
      getEmails(file.getEditors()),
      getEmails(file.getViewers())
    ]);
  }
  
  while (folders.hasNext()) {
    var subFolder = folders.next();
    sheet.appendRow([
      subFolder.getName(),
      subFolder.getUrl(),
      getEmails(subFolder.getEditors()),
      getEmails(subFolder.getViewers())
    ]);
  }
}

function getEmails(users) {
  return users.map(function(user) {
    return user.getEmail();
  }).join(', ');
}

これを実行すれば、きれいなレポート形式でスプレッドシートが作成されます!


ステップ4:不要な共有を一括削除する

さらに踏み込んで、
「この人にはもう共有しないでいいよね」というアカウントを一括で解除できるスクリプトも紹介します。

const REMOVE_USER_EMAIL = "remove-user@example.com";

function removeSharedUser() {
  var folder = DriveApp.getFolderById(FOLDER_ID);
  var files = folder.getFiles();
  var folders = folder.getFolders();
  
  while (files.hasNext()) {
    var file = files.next();
    try {
      file.removeEditor(REMOVE_USER_EMAIL);
      file.removeViewer(REMOVE_USER_EMAIL);
    } catch (e) {
      Logger.log("エラー発生:" + file.getName());
    }
  }
  
  while (folders.hasNext()) {
    var subFolder = folders.next();
    try {
      subFolder.removeEditor(REMOVE_USER_EMAIL);
      subFolder.removeViewer(REMOVE_USER_EMAIL);
    } catch (e) {
      Logger.log("エラー発生:" + subFolder.getName());
    }
  }
}

たったこれだけで、指定ユーザーの共有権限を一括削除できます!


実運用時に注意すべきポイント

■ 権限ミスに要注意

removeEditorやremoveViewerは即時反映・復元不可なので、本当に解除してよいアカウントかよく確認してから実行しましょう。

■ フォルダ所有権移転もGASで可能

組織異動・退職などのタイミングで、所有権を別ユーザーに移すスクリプトも組めます。
必要なら、別記事で紹介可能です!

■ 大規模フォルダは負荷を考慮

1万ファイルを超えるような大規模フォルダの場合、GASの実行制限(6分ルール)に引っかかることがあるので、分割スキャン処理が必要です。


まとめ:GASでGoogleドライブの共有管理は劇的にラクになる!

GASでのドライブ共有フォルダ管理をまとめると——

  • 対象フォルダの全ファイル・フォルダの共有設定を一括取得

  • スプレッドシートにレポート出力

  • 特定ユーザーの共有権限一括削除

  • ミスや漏れを防ぎながら、圧倒的に効率化!

これらを誰でも・無料で・数時間で構築できる。

もう、地道な手動チェック作業に疲弊する必要はありません。
今日からGASで、あなたのGoogleドライブを「鉄壁の共有管理システム」にアップデートしましょう!

Shop now