🐴
GAS:ユーザー出力[WIP]
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