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

时间:2019-03-26 04:12:06

标签: shell gsuite gam

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

感谢您的帮助!

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

2 个答案:

答案 0 :(得分:0)

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

  • 创建一个CONFIGS文件夹(您实际上可以说对这个有意义),并为每个域创建一个子文件夹
  • 将您的 client_secrets.json oauth2.txt oauth2service.json 文件从GAM安装文件夹移至新创建的域文件夹
  • 运行gam info domaingam info user来查看这如何影响您的游戏安装
  • 要创建新的域设置,请运行gam create project
  • 完成后,再次运行gam info domaingam info user来查看区别
  • 请记住也将您的新配置保存到该新域的CONFIGS文件夹中!
  • 替换配置文件后,请在运行任何命令之前先运行gam user <your_admin_account_for_the_current_domain> check serviceaccount,否则可能会出现一些错误;)

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

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

希望这会有所帮助!

答案 1 :(得分:0)

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

因此,您所需要做的就是轻松地更改OAUTFILE变量。我个人使用了这个gam别名(而不是.bash_profile中的默认别名):

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

所以我的gam语法现在是

gam <something> info domain

不,以上我使用〜/ .local / share / gam / ...,您的路径可能有所不同。另外,您可能需要$ HOME / .gam-secrets并将它们放在那里。

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

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

我想不出更短的途径来进行多领域游戏。