You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量将被勒索软件加密的Google Drive文件恢复到上一历史版本

Google Drive批量回退未加密历史版本解决方案

前置注意事项

  • 先确认要恢复的文件历史版本均在30天保留期内,超出保留期的版本无法通过任何方式恢复
  • 操作前先选择3-5个文件做测试,确认回退的版本为未加密的正确版本后再批量操作,避免误操作丢失数据
  • 建议先将所有相关文件的历史版本设置为永久保留,避免30天到期后版本被系统自动删除

现成可用脚本(Google Apps Script,无需本地部署)

该脚本为Drive社区通用成熟方案,个人账号可直接使用,无需额外开发,操作全程在浏览器内完成:

  1. 打开Google Apps Script平台,用你的Google Drive关联账号登录,新建空白项目
  2. 删除编辑器内默认代码,替换为如下代码:
// 功能1:批量开启文件版本永久保留,避免30天到期被删除
function keepAllRevisionsForever() {
  // 请替换为你实际遭遇勒索加密的日期,格式为YYYY-MM-DD,仅处理该日期后被修改的文件
  const encryptDate = '2024-01-01';
  const files = DriveApp.searchFiles(`modifiedDate > '${encryptDate}' and trashed = false`);
  let count = 0;
  while (files.hasNext()) {
    const file = files.next();
    try {
      Drive.Files.patch({ keepRevisionForever: true }, file.getId());
      count++;
    } catch (e) {
      console.log(`处理文件失败:${file.getName()},错误:${e.message}`);
    }
  }
  console.log(`共完成${count}个文件的版本永久保留设置`);
}

// 功能2:批量回退文件到上一个未加密历史版本
function batchRestorePreviousVersions() {
  // 同上方配置,替换为实际加密日期
  const encryptDate = '2024-01-01';
  const files = DriveApp.searchFiles(`modifiedDate > '${encryptDate}' and trashed = false`);
  let processed = 0, success = 0;
  while (files.hasNext()) {
    const file = files.next();
    processed++;
    try {
      const revisions = Drive.Revisions.list(file.getId(), {maxResults: 1000}).items;
      // 跳过无历史版本的文件
      if (revisions.length < 2) continue;
      // 取倒数第二个版本,最新版本为被加密的损坏版本
      const lastValidRevision = revisions[revisions.length - 2];
      const content = UrlFetchApp.fetch(lastValidRevision.downloadUrl, {
        headers: {Authorization: `Bearer ${ScriptApp.getOAuthToken()}`}
      }).getBlob();
      // 覆盖当前加密版本
      file.setContent(content);
      success++;
    } catch (e) {
      console.log(`恢复文件失败:${file.getName()},错误:${e.message}`);
    }
  }
  console.log(`处理完成,共处理${processed}个文件,成功恢复${success}个文件`);
}

脚本使用说明

  • 首次运行前点击编辑器左侧「服务」按钮,找到并添加Drive API服务,否则脚本无法调用版本相关接口
  • 首次运行会触发权限校验,按提示授权你的Google Drive账号访问权限即可,个人账号可正常获取所需权限
  • 先运行keepAllRevisionsForever函数完成版本永久保留设置,再运行batchRestorePreviousVersions函数执行批量恢复
  • Google账号有单日脚本运行配额限制,若文件数量较多可分2-3天分批运行,每次运行建议处理不超过2万个文件

小批量备选方案

如果需要恢复的文件数量少于100个,可以直接在Google Drive网页端操作:按住Ctrl选中多个被加密的文件,右键选择「管理版本」,手动删除最新的加密版本后,系统会自动回退到上一个历史版本。


内容的提问来源于stack exchange,提问作者Samir Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:36:04