#69 組織内の共有ドライブの一覧を作成する
Google Workspace の管理コンソールで「アプリ」→「Google Workspace」→「ドライブとドキュメント の設定」→「共有ドライブの管理」と選択すると、組織内で作成されている共有ドライブについて、以下のような項目で一覧表示できます。
名前 ※並び替えの対象
組織部門
ステータス
作成日
作成者
使用容量 ※並び替えの対象
保存容量の上限
アイテム数の上限
共有ドライブ ID
1ページに表示できる件数は、デフォルト(既定値)で 20件ですが、10、20、30、40、50 と変更が可能です。
また、フィルタによる絞り込みも可能です。
組織の規模や使い方にもよるのでしょうが、多くの共有ドライブが運用されている環境だと、一覧にしたいと思うのではないでしょうか?
ということで、API を確認して、プログラムを作ってみました。
作成したプログラム
作成したプログラムは、下図のような Google スプレッドシートに埋め込んであります。メニューから「共有ドライブ」→「一覧作成」と選択することで、組織内の共有ドライブを一覧にできます。
管理者でなければ、メンバーではない共有ドライブの情報を取得できないので、「特権管理者」の権限が付与された Google アカウントでログインしている状態で、下記の URL にアクセスします。GAS のプログラムが保存されたスプレッドシートが、自身の Google ドライブにコピーされます。
https://docs.google.com/spreadsheets/d/1KiAfVjVcFLkFLcdRwu2K92TSBUNyNYHxClpdKro9XH8/copy
前述のように、メニューからプログラムを実行すれば、相応の時間はかかりますが、一覧を作成してくれます。
なお、スクリプトの初回実行時には、実行するアカウントによる確認作業が必要になります。詳しくは以下の投稿をご覧ください。
プログラムの効果
一覧では、共有ドライブの 5つの権限に、どのようなユーザー/グループが設定されているのかを表示できます。
管理者
コンテンツ管理者
投稿者
閲覧者(コメント可)
閲覧者
管理コンソールでも確認できる「メンバーなし」「管理者なし」の共有ドライブについては、列 I にその旨のメッセージが表示されるので、判別しやすいと思います。
わたしの所属する組織の Google Workspace では、1600個くらいの共有ドライブが作成されていましたが、10分かからないくらいで処理が終わっていました。
GAS の実行時間制限に引っかからないだろうと考えて、時間内に処理が終わらなかった時のことは考慮してありません。
高度なドライブサービス?
今回のプログラムでは、以下のページで案内されている高度なドライブサービス(英語では、Advanced Drive Service)を用いたものです。
このページの説明に従って、GAS のプロジェクトにサービスを利用するためのサービスを追加すると、Drive オブジェクトによって API が利用できます。
しかしながら、上図に表示されているように対応している API のバージョンは v2 にしか対応しておらず、一覧にはできたものの、管理コンソールの一覧では表示されていた「作成日」や「使用容量」は表示できていません。
上記のサービスが v3 の API に対応する
Google OAuth 2.0 を用いて認証して、Web API で v3 の API を利用する
のいずれかの対応を行えば、より細かな処理が行えるのかもしれませんが、v2 の API では一覧を作成するくらいしかできませんでした。
最後に
最後に、お決まりのフレーズなどを書いておきます。
一応の動作確認は行っているものの、不慮のトラブルによって損害等が生じても、責任はとれませんので予めご了承ください。
コメントを含めても 150行程度のスクリプトであり、実行に際して目的外の場所への書き出しや収集などは行っていません。
特別なエラー処理は行っていないので、意図しないケースでエラーが発生してしまうかもしれません。どうにもならない場合には、ご連絡ください。
GAS に提供されている簡単な API では、前述したように一覧は作成できたものの、簡単な一覧しか作成できませんでした。今後、機会があれば Google OAuth 2.0 を用いたプログラムにもチャレンジしてみたいと思います。