我可以在多个域中使用 GAM 吗?

Can I use GAM with multiple domains?

我需要 运行 在客户端迁移时跨两个域的一些 GAM 脚本;这可能吗?我一直在尝试查找有关设置的任何文档,但似乎没有:/

感谢任何帮助!

注意:这不是关于主域或辅助域的问题 - 如果您需要有关 primary/secondary 切换的更多信息,我发现 GAM3DirectoryCommands 非常有帮助且具有描述性!

这不是直接可能的;但是您可以通过以下方式实现此目的:

  • 创建一个 CONFIGS 文件夹(您实际上可以称呼它对您有意义),并为每个域创建一个子文件夹
  • 移动你的client_secrets.jsonoauth2.txtoauth2service.json GAM 安装文件夹中的文件到新创建的域文件夹中
  • 运行 gam info domaingam info user 看看这对您的 gam 安装有何影响
  • 创建新的域设置,运行 gam create project
  • 完成后,运行 gam info domaingam info user 再次查看差异
  • 记得也将您的新配置保存到这个新域的 CONFIGS 文件夹中!
  • 当您替换配置文件后,运行 gam user <your_admin_account_for_the_current_domain> check serviceaccount 在 运行 任何命令之前,否则您可能会遇到一些错误 ;)

现在您可以通过替换 client_secrets.jsonoauth2.txt 在域之间切换oauth2service.json 在您的 GAM 安装文件夹中(并记住 check serviceaccount)。

显然有许多更优雅的方法可以做到这一点 - 但无论如何这将构成您的 powershell 脚本的基础;P

希望对您有所帮助!

相当简单,实际上比当前答案更简单。 gam 读取指向访问凭据的 OAUTHFILE 环境变量(默认为 oauth2.txt)。这才是最重要的,因为您可以为多个域使用同一个 GCP 项目。

因此,您所需要的只是一种更改 OAUTFILE 变量的简单方法。我个人使用这个 gam 别名(而不是 .bash_profile 中的默认别名):

gam() { export OAUTHFILE=~/.local/share/gam/auth-.txt; shift; "~/.local/share/gam/gam" "$@" ; unset OAUTHFILE }

所以我现在的 gam 语法是

gam <something> info domain

不,上面我使用 ~/.local/share/gam/... 你的路径可能不同。你也可能想要一个 $HOME/.gam-secrets 并将它们放在那里。

Something 是一个简单的字符串,用于唯一标识每个域(它将用于构造别名中的 OAUTHFILE。

不要忘记授予您的 GCP 服务帐户访问所有域 (https://admin.google.com/AdminHome?#OGX:ManageOauthClients) 的权限。

我想不出提供多域游戏的更短途径。