2019年4月23日火曜日

【G Suite】GAM でGoogleグループへのメンバー一括登録方法(macOS編)

過去に、Google Apps Manager (GAM) を使っていろいろやろう にて触りの部分は書いていましたが、少し本格的に使わないといけなくなったので改めてまとめます。Google グループの一括作成方法については

を見ればわかると思いますので、ここでは一括登録のみに特化します。

なお一括登録前にバックアップ、すなわち現在登録済みのメンバー一覧のエクスポートから説明しておきます。

なお以下は、G Suite 専用であり、G Suite 管理コンソールにログイン可能な特権管理者向けのドキュメントとして残しておこうと思ってまとめたものです。

  • 前半:すでにインストールした状態での利用方法
  • 後半:macOSへのGAMのインストール方法

グループのメンバー一覧エクスポート


1.  GAMを使った場合


グループ名:sample-ml
MLメールアドレス:sample-ml@example.com 

と仮定します。

gam  info  group  sample-ml
....
....
 member: メールアドレスA (user)
 member: メールアドレスB (user)
 member: メールアドレスC (user)
 member: メールアドレスD (user)
 member: メールアドレスE (user)
 owner: メールアドレスF (user)
 manager: メールアドレスG (user)

のように出てきます。したがって
  • gam  info  group  sample-ml  > sample-ml-back.dump
とかファイルに出力すれば、グループの設定やメンバー(オーナーやマネージャーもわかる)を取得できます。

さらにメンバーが何名登録されているかが末尾に出力されます。

2. Googleグループの管理画面よりエクスポート



上記のように、Googleグループのメンバー一覧表示のバーに「メンバーをエクスポート」があります。もちろん管理権限を持っている必要があります。

これでエクスポートすると BOM無しUTF-8のCSVファイルで保存されます。
これを Microsoft Excel で開くと文字化けします。文字化けしたくないなら、BOMありのUTF-8に文字コード変換してあげてください。

macOS であれば、CotEditor というテキストエディタで開いて


のように文字コードを BOM付きにして上書き保存したらよいでしょう。
こちらはステータス(配送エラー等)がわかるので、便利です。

Googleグループへのメンバー登録


  • gam  update group  グループ名  add member  メールアドレス

もし Word等で一行一メールでメールデータを大量にもらったのなら、それを一旦テキストファイルに保存し直した上で
  • cat  ファイル名  | awk  '{print "gam update group グループ名  add member "$1}' 
にて正しくコマンド一覧ができているか確認した上で、
  • cat  ファイル名  | awk  '{print "gam update group グループ名  add member "$1}'  | bash
で一括登録できます。実際には出力結果をリダイレクトしてファイルに保存しておくことをオススメします。
  • cat  ファイル名  | awk  '{print "gam update group グループ名  add member "$1}'  | bash  >  グループ名.log 
あたりでしょうか。

登録成功
+ ./gam update group グループ名 add member メールアドレス
 Group: グループメールアドレス, メールアドレス Add as MEMBER 

すでに登録済みのため追加しない
+ ./gam update group グループ名 add member メールアドレス
 Group: グループメールアドレス, メールアドレス Add as MEMBER Failed: Duplicate, already a MEMBER

と出てくるので、

追加を試みたメールアドレス数
grep -v '+'  グループ名.log  | wc

すでに登録済みだったメールアドレス数
grep -v '+'  グループ名.log  | grep Duplicate | wc

などをすると、登録状況がわかるかなと思います。
このあたりはコマンドでいろいろできる人なら、いろいろできるでしょう。

注意!


必ず作業する前にバックアップをしておきましょう。
万が一ミスっても、バックアップしておけば戻せますよね(最悪メンバー一覧情報があれば)
  • gam info group グループ名 > バックアップファイル名


GAM を macOS にインストール



まず最初に注意ですが、gam はコマンドラインで G Suite を直接管理するためのものです。つまり G Suite の特権管理者がメンバーの一括登録をしたいときなどにつかうだろうと思いますので失敗したら Googleグループをあっさり削除してしまったり、ユーザーを削除してしまう事がありうるということです。そのことを正しく認識した上で使ってください。つまりコマンド操作に不慣れな人は使わないほうがよいということです。

また、つかうとき以外は機能OFFにすると安心かもしれません。
  • G Suite管理コンソール > セキュリティ  > API アクセス が ON
になっていることが条件になり、ここを普段 OFF にしているとアクセスを遮断できます。
なおここがOFFになっていると

  • ERROR: 403: Domain cannot use apis. - domainCannotUseApis

のようにエラーがでます。

1. gam を macOS にインストール

bash <(curl -s -S -L https://git.io/install-gam)

Can you run a full browser on this machine? (usually Y for MacOS, N for Linux if you SSH into this machine) N

*これ Yにすると、ブラウザベースで認証をしようとしますが、 localhost:8080 にアクセスできず(いろいろしましたが)、結局 ssh のほうにしました。

Please enter your G Suite admin email address: 特権管理者のメールアドレス
Go to the following link in your browser:
URL
Enter verification code: URLにアクセスし出てきた codeを貼り付ける
が出てくるので、URLにブラウザからアクセスして、特権管理者のメールアドレスでログインします。そうすれば、verification codeが出てくるので、これをコピーして貼り付けます。

次に

https://console.developers.google.com/apis/credentials?project=gam-project-****
1. Click the blue "Create credentials" button. Choose "OAuth client ID".
2. Click the blue "Configure consent screen" button. Enter "GAM" for "Application name".
3. Leave other fields blank. Click "Save" button.
3. Choose "Other". Enter a desired value for "Name". Click the blue "Create" button.
4. Copy your "client ID" value.

というのが出てくるので、支持に従って Google Developer Console にて GAM用のプロジェクトを作成して、クライアントIDクライアントSecretキーを取得してください。このあたりの詳細は説明しません。これができないレベルだと、使うのは危ないためです。

あといくつかの質問がありますが、割愛します。
どのAPIに許可を与えるのか等、個別に考える内容のためです。とりあえず今回は Googleグループに対する権限があればよいです。

でうまく行けば、

GAM installation and setup complete!
Please restart your terminal shell or to get started right away run:
gam() { "/Users/ユーザー/bin/gam/gam" "$@" ; }

に入ります。
$HOME/bin/gam あたりに PATHを通しておくか、直接 gam を実行すればよいでしょう。

GAM が使えるかの確認


$HOME/bin/gam/gam info domain 

として、G Suite のドメイン情報が出てきたらアクセスできていることになります。

なお以下、説明時に $HOME/bin/gam/gam は gam に置き換えます。

またコマンド詳細
  • $HOME/bin/gam/GamCommands.txt
にすごく見づらいですが載っていますのでここを見ればよいです。

2019年4月23日 @kimipooh

0 件のコメント:

コメントを投稿