查找所有 Google 个包含来自特定域的电子邮件的成员的群组

Find all Google Groups with members with emails from a specific domain

我的组织使用 Google 组来访问外部各方的云端硬盘和网站。我需要确保来自特定域的所有成员都从他们可能所在的所有组中删除。

我试过在 Workspace Admin 中找到合适的报告或审计,但找不到能够提供完整图片的报告或审计。

我确定有一种方法可以通过 API 做到这一点,但我不是开发人员,我与之交互的能力仅限于他们在 SDK page.

即使我能得到所有成员及其组的详尽列表,我也能完成这项任务。如果有任何质量可靠的组管理器附加组件,附加组件将是一个很好的工具。

我使用 Google Apps 脚本创建了以下示例脚本,它可以完成您正在寻找的内容。您只需更改 domain 变量,使其包含您要删除的用户的域。

该脚本的作用是从所有组中获取用户列表,然后比较哪些用户的电子邮件地址中包含指定的域并将其从组中删除。

代码如下:

function removeExternals()
{
  let domain = "domain.com";
  let groups;
  let users;
  let externalUsers = [];
  groups = AdminDirectory.Groups.list({"customer": "my_customer"});
  let groupsIds = [groups.groups.length];
  for(let i=0; i< groups.groups.length; i++)
  {
    groupsIds[i] = groups.groups[i].id;
    users = AdminDirectory.Members.list(groupsIds[i]);
    for(let x=0; x< groups.groups[i].directMembersCount;x++)
    {
      try
      {
        if(users.members[x].email.search(domain)!=-1)
        {
          //externalUsers.push(users.members[x].email);
          AdminDirectory.Members.remove(groupsIds[i], users.members[x].email);
          Logger.log(`Deleted: ${users.members[x].email}`);
        }
      }
      catch{};
    }
  }
}

要测试它,您只需在 Google Apps Script 中创建一个项目,将代码粘贴到那里并更改 domain 变量(确保至少有一个具有该域的用户是组的一部分).您还需要先将 Admin SDK API 服务添加到 Google Apps 脚本,方法是单击 Services,然后单击 Admin SDK API,然后单击 Add

参考文献: