Last active
November 1, 2020 13:45
-
-
Save kazgoto/5633935cd9c6a9396ddf747af2f155d0 to your computer and use it in GitHub Desktop.
Google Drive内、特定のフォルダ以下のファイルとフォルダの共有権限を削除してアクセス制限するバッチスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Google Drive内、特定のフォルダ以下のファイルとフォルダの共有権限を削除してアクセス制限する | |
var TARGET_FOLDERS = [ // ターゲットのフォルダリスト(URLの最後の文字列部分) | |
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', // 権限削除したいフォルダ1 | |
'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy' // 権限削除したいフォルダ2 | |
]; | |
var me = Session.getActiveUser().getEmail(); // 自アカウントのメールアドレス | |
function main() { | |
Logger.log("実行開始します"); | |
TARGET_FOLDERS.map(function(id) { | |
var folder = DriveApp.getFolderById(id); | |
Logger.log('target: ' + folder.getName()); | |
revokePermissionRecursively(folder); | |
}); | |
Logger.log("実行完了しました"); | |
} | |
function revokePermission(fileOrFolder) { | |
if (fileOrFolder.getOwner().getEmail() === me && | |
fileOrFolder.getSharingAccess() !== DriveApp.Access.PRIVATE && | |
fileOrFolder.getSharingPermission() !== DriveApp.Permission.NONE) { | |
Logger.log('revoked: "', fileOrFolder.getName() + '" ' + fileOrFolder.getUrl()); | |
fileOrFolder.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.NONE); | |
} | |
} | |
function revokePermissionRecursively(folder) { | |
revokePermission(folder); | |
var files = folder.searchFiles('"me" in owners'); | |
while (files.hasNext()) { | |
var file = files.next(); | |
revokePermission(file); | |
} | |
var folders = folder.getFolders(); | |
while (folders.hasNext()) { | |
var folder = folders.next(); | |
revokePermissionRecursively(folder); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
元ネタ https://qiita.com/tanabee/items/da897eee4dac7b90aa24