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

如何使用Google Admin API批量删除用户账号的管理员角色分配?求脚本示例

Google Apps Script 批量删除用户管理员角色分配示例

前置准备

  1. 在Google Apps Script编辑器中,点击「扩展」>「Apps Script 编辑器」(旧界面为「资源」>「高级Google服务」),启用Admin SDK API。
  2. 确保你的账号拥有Google Workspace超级管理员权限,且已授权脚本访问Admin API。

核心脚本示例

以下脚本包含获取用户角色分配、单个删除及批量处理的完整功能:

// 获取指定用户的所有管理员角色分配ID
function getUserRoleAssignments(userEmail) {
  const roleAssignments = [];
  try {
    const response = AdminDirectory.RoleAssignments.list(userEmail);
    if (response.items && response.items.length > 0) {
      response.items.forEach(assignment => {
        roleAssignments.push(assignment.id);
      });
    }
  } catch (err) {
    console.log(`获取用户 ${userEmail} 角色分配失败: ${err.message}`);
  }
  return roleAssignments;
}

// 删除单个角色分配
function deleteRoleAssignment(assignmentId) {
  try {
    AdminDirectory.RoleAssignments.remove(assignmentId);
    console.log(`角色分配 ${assignmentId} 删除成功`);
  } catch (err) {
    console.log(`删除角色分配 ${assignmentId} 失败: ${err.message}`);
  }
}

// 批量删除指定用户列表的管理员角色
function bulkRemoveAdminRoles(userEmailList) {
  userEmailList.forEach(email => {
    const assignmentIds = getUserRoleAssignments(email);
    if (assignmentIds.length === 0) {
      console.log(`用户 ${email} 没有管理员角色分配`);
      return;
    }
    assignmentIds.forEach(id => deleteRoleAssignment(id));
  });
}

// 示例:调用批量删除函数
function runBulkRemoval() {
  // 替换为你的目标用户邮箱列表
  const targetUsers = [
    'user1@yourdomain.com',
    'user2@yourdomain.com',
    'user3@yourdomain.com'
  ];
  bulkRemoveAdminRoles(targetUsers);
}

注意事项

  • 若只需删除特定类型的管理员角色(比如仅删除「用户管理员」),可在getUserRoleAssignments函数中添加过滤条件,通过assignment.roleId匹配目标角色ID(角色ID可通过AdminDirectory.Roles.list()获取)。
  • 首次运行脚本会触发权限授权,需以超级管理员账号完成授权流程。
  • 建议先在测试账号上验证脚本功能,避免误操作生产环境的角色分配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 21:32:11