【GAS】Google Driveの共有設定を一括解除するスクリプト|特定ユーザーの権限をまとめて削除
Google Driveでファイルを共有していると、いつの間にか多くのファイルが外部ユーザーに共有されてしまい「誰に何を共有しているか把握できない」状態になることがあります。
本記事では、GAS(Google Apps Script)を使って特定ユーザーへの共有設定を一括解除するスクリプトを紹介します。退職者の権限解除やプロジェクト終了時の整理に活用できます。
共有されているファイルを確認する
まず現状を把握するため、特定ユーザーに共有されているファイルを確認します。Google Driveの検索窓に以下を入力して検索します。
sharedwith: メールアドレス

スクリプトの作成
Google Apps Script(GAS)を開いて以下のコードを貼り付けます。
function main(){
// 共有を解除したいユーザーのメールアドレスを設定します
removeShare("メールアドレス")
}
function removeShare(email){
// 対象ユーザーが閲覧者または編集者として共有されているファイルを検索
let files = DriveApp.searchFiles('"'+email+'" in readers and "'+email+'" in writers');
let count = 0;
while (files.hasNext()) {
let file = files.next();
console.log("共有解除: " + file.getName() + " (ID: " + file.getId() + ")");
file.removeViewer(email); // 閲覧権限削除
file.removeEditor(email); // 編集権限削除
count++;
}
console.log(count + "件の共有設定を解除しました。");
}
スクリプトの動作解説
共有ファイルの検索
DriveApp.searchFiles()でDrive全体から指定したメールアドレスが共有されているファイルを検索します。in readersは閲覧権限、in writersは編集権限を持つファイルを対象とします。
let files = DriveApp.searchFiles('"'+email+'" in readers and "'+email+'" in writers');
検索結果はイテレータとして返されるため、while (files.hasNext())でループ処理します。
権限の削除
file.removeViewer(email); // 閲覧権限削除
file.removeEditor(email); // 編集権限削除
removeViewer()で閲覧権限、removeEditor()で編集権限を削除します。両方実行することで確実にアクセスを遮断できます。
実行方法と注意事項
Google スプレッドシートの「拡張機能」→「Apps Script」でスクリプトエディタを開き、上記コードを貼り付けてmain()を実行します。
注意:このスクリプトは各ファイルの共有設定を変更できる権限を持つアカウントで実行する必要があります。他のユーザーが所有するファイルは変更できません。
- 実行前に
console.log()のみで対象ファイルを確認することを推奨します - 共有解除は元に戻せないため、慎重に実行してください
- 処理件数が多い場合はGASの6分実行制限に注意してください
DriveAppの詳細は公式ドキュメントをご確認ください。







ディスカッション
コメント一覧
以下のコード参考になりました。
こちらのコードは、削除したい対象者の人数がわりと少ないときに使用するものかと推察致しますがこの理解で宜しいでしょうか。
対象者関係なく、共有ドライブの管理者、コンテンツ管理者以外に共有設定を
初期化する方法を模索しております。
function main(){
//削除したいユーザーのメールアドレスを設定します。
removeShare(“メールアドレス”)
}
function removeShare(email){
let files = DriveApp.searchFiles(‘”‘+email+'” in readers and “‘+email+'” in writers’ );
while (files.hasNext()) {
let file = files.next();
console.log(“共有解除 ”+”ファイル名 :”+file.getName() +” ID :”+file.getId())
file.removeViewer(email) //閲覧権限削除
file.removeEditor(email) //編集権限削除
}
}
コメントありがとうございます。
仰るとおり任意のアカウントの権限を削除するスクリプトになります。
全アカウントの共有を解除するには、「ドライブ内の全ファイルをクローリング」 → 「共有を解除」 を実行する別のスクリプトを作成する必要があります。