[GAS]GSuiteに登録されたグループのリストを取得する
投稿者:大島
こんにちは、NI+C大島です
GSuiteを利用しているシステム管理者の方々向けの記事になります。
GSuite上に登録されたグループアドレスを一覧で取得したい場合がありますが
GSuiteの管理者画面からは一覧で取得することが出来ません(ユーザーは一覧で取得できるんですが….)
そこで、今回グループアドレスを一覧で取得するGASを紹介します。
function getListMain() {
let domain = '<GSuiteで利用している自組織ドメインを記載>'
let endFlag = false;
let token = '';
while(!endFlag){
try {
var groupList = AdminDirectory.Groups.list({
domain: domain, //使用しているドメイン
maxResults: 200, //取得する件数
pageToken: token
});
for(var i = 0; i < groupList.groups.length; i++){
console.log(groupList.groups[i].email)
}
if(groupList["nextPageToken"] == null){
console.log("nextPageToken null: "+ groupList["nextPageToken"])
endFlag = true;
}else{
token = groupList["nextPageToken"];
}
} catch(error) {
console.log(error);
}
}
console.log("END")
}
GASでグループアドレスを取得したい場合、利用する関数は「AdminDirectory.Groups.list」になりますが
「AdminDirectory.Groups.list」をそのまま実行すると”maxResults”に設定した値分しかグループアドレスが取得できません。
そのため、200件以上グループアドレスが登録されているGSuiteの場合は”pageToken”を利用して
レスポンスデータに”nextPageToken”が取得できる限り、while文で「AdminDirectory.Groups.list」を実行する事で
200件以上のグループアドレスが取得可能になります。
本スクリプトを実行すると、ログにグループアドレスの一覧が出力されますので
必要に合わせてコピペしてお使い頂けます。