【发布时间】:2019-03-26 04:12:05
【问题描述】:
当客户端迁移时,我需要跨两个域运行一些 GAM 脚本;这可能吗?我一直在尝试查找有关设置的任何文档,但似乎没有:/
感谢任何帮助!
注意:这不是关于主域或辅助域的问题 - 如果您需要有关主域/辅助域切换的更多信息,我发现 GAM3DirectoryCommands 非常有用且具有描述性!
【问题讨论】:
标签: shell google-workspace gam
当客户端迁移时,我需要跨两个域运行一些 GAM 脚本;这可能吗?我一直在尝试查找有关设置的任何文档,但似乎没有:/
感谢任何帮助!
注意:这不是关于主域或辅助域的问题 - 如果您需要有关主域/辅助域切换的更多信息,我发现 GAM3DirectoryCommands 非常有用且具有描述性!
【问题讨论】:
标签: shell google-workspace gam
这不是直接可能的;但是您可以通过以下方式实现此目的:
gam info domain 和 gam info user 看看这对您的 gam 安装有何影响gam create project
gam info domain 和 gam info user 以查看区别gam user <your_admin_account_for_the_current_domain> check serviceaccount,否则你可能会得到一些错误;)现在您可以通过替换 GAM 安装文件夹中的 client_secrets.json、oauth2.txt 和 oauth2service.json 在域之间切换记得check serviceaccount)。
显然有很多更优雅的方法可以做到这一点 - 但无论如何这将构成您的 powershell 脚本的基础;P
希望这会有所帮助!
【讨论】:
事实上,它比当前的答案相当容易,更容易。 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 并将它们放在那里。
Something 是一个简单的字符串,用于唯一标识每个域(它将用于在别名中构造 OAUTHFILE。
不要忘记让您的 GCP 服务帐户访问所有域 (https://admin.google.com/AdminHome?#OGX:ManageOauthClients)。
我想不出更短的途径来进行多域游戏。
【讨论】: