如何重置Google Drive所有文件夹、子文件夹及文件的权限为受限状态
Google Drive全量文件/文件夹权限重置为「restricted(受限)」状态解决方案
操作提示:请先对重要文件进行独立备份,建议先选中单个测试文件夹修改脚本启动路径,验证效果后再全量执行,避免误操作影响文件访问。
操作步骤
- 打开Google Apps Script控制台,新建空白项目,删除编辑区默认生成的所有代码
- 点击编辑器左侧「服务」栏的「+」按钮,找到「Drive API」,选择V3版本添加到项目中
- 将如下代码粘贴到编辑区:
// 递归重置Drive所有文件/文件夹权限为受限状态 function resetAllDrivePermissionsToRestricted() { // 遍历当前文件夹下所有子文件夹、文件 function processFolder(folder) { // 处理当前文件夹权限 clearNonOwnerPermissions(folder); // 遍历处理子文件夹 const subFolders = folder.getFolders(); while (subFolders.hasNext()) { processFolder(subFolders.next()); } // 遍历处理当前文件夹下的所有文件 const files = folder.getFiles(); while (files.hasNext()) { clearNonOwnerPermissions(files.next()); } } // 移除指定文件/文件夹的所有非所有者权限,自动设置为受限状态 function clearNonOwnerPermissions(resource) { const resourceId = resource.getId(); // 获取所有权限列表 const permissionList = Drive.Permissions.list(resourceId, { supportsAllDrives: true }).permissions; // 遍历删除除所有者外的所有权限 permissionList.forEach(perm => { if (perm.role !== 'owner') { Drive.Permissions.remove(resourceId, perm.id, { supportsAllDrives: true }); } }); } // 默认从Drive根目录开始执行,若需要指定特定文件夹,替换为对应文件夹ID即可 const root = DriveApp.getRootFolder(); processFolder(root); }
- 点击编辑区上方的保存按钮,自定义项目名称后,点击「运行」按钮
- 首次运行需要完成账号授权:遇到「Google未验证应用」提示时,点击「高级」-「继续访问[自定义的项目名]」,按照提示完成Drive访问授权即可
- 脚本自动后台执行,文件数量较多时可能需要等待数分钟到数十分钟不等,若触发执行超时,重新点击运行即可,脚本不会重复处理已完成权限重置的文件
方案优势
- 无文件删除风险:仅做权限修改操作,不会删除、移动任何文件,也不会修改文件内容
- 自动级联处理:递归遍历所有层级的子文件夹、文件,无需手动逐层级调整
- 适配多场景:支持个人Drive、共享Drive的批量权限重置,仅需修改启动执行的根目录参数即可
内容的提问来源于stack exchange,提问作者Mk1
相关产品推荐
相关产品推荐

