🐴

GAS:ユーザー出力[WIP]

2021/02/15に公開

memo

1行で出力しているのでそのうち変更したい。

ソースコード

function getGsuiteUserList(){

//頭文字検索に使用する文字列 「charAt()」関数で1文字ずつ呼び出す
var searchStrs = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";

//この配列に、メールアドレスを格納する
var allUserMails = new Array();

// 複数ドメインを考慮する
var domains = [""];

for(var i = 0;i < domains.length;i ++){
	for(var j = 0;j < searchStrs.length;j ++){
		
		//呼び出すユーザーの条件を指定する
		var optionalArgs = {
			domain:domains[i],		 //ドメインを入力
			maxResults:500,				//デフォルトでは100件までなので、500(最大数)を指定
			query:"email:"+ searchStrs.charAt(j) +"*",//メールアドレスの頭文字で検索を行う
			fields:"users/emails"	//メールアドレスの情報のみを限定して取得
		};
		
		//ユーザー情報の呼び出し
		var userDatas = AdminDirectory.Users.list(optionalArgs);
		if(userDatas.users){
			//呼び出されたユーザーの回数分ループする
			for(var k = 0;k < userDatas.users.length;k ++){
				//呼び出したメールアドレスには別名も含まれているため、その回数分をループ
				for(var l = 0;l < userDatas.users[k].emails.length;l ++){
					//メールアドレスのうち、primary(一意である)かどうかをチェック
					//念のために、既に取得してあるものは重複しないように対象外にする
					if(userDatas.users[k].emails[l].primary == true &&
						 allUserMails.indexOf(userDatas.users[k].emails[l].address) == -1){
						allUserMails.push(userDatas.users[k].emails[l].address);
					}
				}
			}
		}
	}
}
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('[Gsutie]Mailリスト');
sheet.appendRow(allUserMails);
  
}

Discussion