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

如何使用App Script移除自身Google文档所有者身份并移交权限?

Google文档添加用户并移除自身权限的解决方案

你说的代码没法移除自身权限,核心原因就是文档所有者没法主动删掉自己的所有者身份,得先把其他用户加进来,必要时转移所有权,才能顺利移除自己的权限。下面是具体的实现方法:

两种可行方案

方案1:添加编辑者后移除自身编辑权限(保留所有者身份)

这种方式下你还是文档所有者,但会失去编辑权限,文档依然留在你的云端硬盘里:

function addUserAndRemoveEditAccess() {
  // 创建新文档,也可以用DocumentApp.openById('文档ID')打开已有文档
  const doc = DocumentApp.create('document');
  // 替换成要添加的用户邮箱
  const targetUser = 'target@example.com';
  
  // 先把目标用户设为编辑者
  doc.addEditor(targetUser);
  
  // 等2秒让权限同步,避免操作延迟导致失败
  Utilities.sleep(2000);
  
  // 获取自己的邮箱,移除编辑权限
  const myEmail = Session.getActiveUser().getEmail();
  doc.removeEditor(myEmail);
}

方案2:转移所有权后彻底移除自身所有权限

如果想完全和这个文档撇清关系,就得先把所有权转出去,再删掉自己的权限:

function transferOwnershipAndLeave() {
  const doc = DocumentApp.create('document');
  const targetUser = 'target@example.com';
  
  // 必须先把目标用户加为编辑者,才能转移所有权
  doc.addEditor(targetUser);
  
  // 转移文档所有权给目标用户
  doc.setOwner(targetUser);
  
  // 等待权限同步
  Utilities.sleep(2000);
  
  // 移除自己的所有权限(此时已经不是所有者,用removeViewer即可)
  const myEmail = Session.getActiveUser().getEmail();
  doc.removeViewer(myEmail);
}

注意点

  • 转移所有权的话,目标用户如果是外部用户,得先接受共享邀请;如果是同域的Google Workspace用户,操作会更顺畅
  • 一旦执行setOwner(),你就再也管不了这个文档了,操作前一定要确认好
  • 要是只想失去编辑权限但还留着所有者身份,用方案1就行,文档会一直在你的云端硬盘里

内容的提问来源于stack exchange,提问作者Brady Hansen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:45:12