迁移Google Workspace外部用户所有文件/文件夹遇阻,求简化操作方案
一、先批量定位不可迁移文件
方法1:高级搜索快速筛选
在Drive搜索框输入以下条件,直接揪出所有非组织内用户拥有的文件:
owner:* -owner:@your-org-domain.com is:file
把your-org-domain.com换成你的组织域名,搜索结果里再手动挑出迁移报错的(部分外部文件其实能正常迁移,得验证下)。
方法2:脚本批量检测(省手动排查)
用Google Apps Script遍历目标文件夹,自动标记哪些文件动不了:
function findUnmovableFiles() { var folderId = "TARGET_FOLDER_ID"; // 替换成要迁移的文件夹ID var testDriveId = "TEST_SHARED_DRIVE_ID"; // 先建个测试共享盘拿ID var folder = DriveApp.getFolderById(folderId); var files = folder.getFiles(); var sheet = SpreadsheetApp.create("不可迁移文件清单"); var sheetData = [["文件名", "文件ID", "所有者邮箱", "状态"]]; while (files.hasNext()) { var file = files.next(); var ownerEmail = file.getOwner().getEmail(); if (!ownerEmail.includes("@your-org-domain.com")) { try { // 尝试移去测试盘再移回,验证是否可迁移 Drive.Files.update({parents: [{id: testDriveId}]}, file.getId(), {supportsAllDrives: true}); Drive.Files.update({parents: [{id: folderId}]}, file.getId(), {supportsAllDrives: true}); sheetData.push([file.getName(), file.getId(), ownerEmail, "可迁移"]); } catch (e) { sheetData.push([file.getName(), file.getId(), ownerEmail, "不可迁移(错误:" + e.message + ")"]); } } } sheet.getActiveSheet().getRange(1, 1, sheetData.length, sheetData[0].length).setValues(sheetData); Logger.log("清单已生成:" + sheet.getUrl()); }
注意:运行前得在脚本编辑器里启用Drive API(编辑器→服务→+→选Drive API)。
二、分场景批量处理
能联系上外部所有者的情况
- 从生成的清单里导出所有者邮箱列表
- 用组织的邮件工具批量发权限请求,模板直接用:
您好,我们正在整理团队文件,您名下的「[文件名]」需要迁移至我们的共享盘,请帮忙把文件权限改成「允许组织内成员移动」,或者直接把所有权转至我们的组织账号,麻烦了。
- 对方更新权限后,按住Ctrl/Shift多选文件,直接拖进目标共享盘就行。
联系不上外部所有者的情况(只能重新上传)
- 用Google Drive桌面客户端同步目标文件夹到本地,它会自动跳过能迁移的文件,只同步动不了的外部文件
- 本地整理好文件夹结构,直接拖进Shared Drive对应位置,客户端会自动重试上传失败的文件
- 上传完记得删掉My Drive里的原文件(先备份,别搞丢数据)
三、几个简化操作的小技巧
- 按
Shift+Z可以快速把文件添加到多个位置,先加到共享盘,再删原位置,比直接移动更顺畅 - 嵌套文件夹先迁顶层,报错了再进子文件夹排查,少做重复操作
- 用Google Workspace Admin控制台的Drive迁移工具,批量迁移时会自动跳过不可迁移文件,还能生成详细报错报告
内容的提问来源于stack exchange,提问作者Mr. Collins
相关产品推荐
相关产品推荐

