1

私は 2 つの Google Apps for Education アカウントの特権管理者ですが、両方のドメインで同じスクリプトを実行しても結果が異なります。スクリプトは次のとおりです。

function listUsers(s) {     
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  sheet.getDataRange().clear()
  var users = UserManager.getAllUsers();
  var r = new Array();
  var f = new Array();
  var Uconnect = '';

  for( var i = 0 ; i < users.length ; i++ ){
    var Umail = users[i].getEmail(); 
    var UnomF = users[i].getFamilyName()
    var UnomP = users[i].getGivenName()

    if(users[i].getAgreedToTerms()){Uconnect = 'yes'}else{Uconnect = 'never'}

    r.push([UnomF,UnomP,Umail,Uconnect]);
    if(i%2==0){
      f.push(['#eeeeff','#eeeeff','#eeeeff','#eeeeff']);
    }else{
      f.push(['#ffffff','#ffffff','#ffffff','#ffffff']);
    }
  }   
  r.sort(function(x,y){
    var xp = x[0].toLowerCase();
    var yp = y[0].toLowerCase();
    Logger.log(xp+'   '+yp)
    return xp == yp ? 0 : xp < yp ? -1 : 1;//  sort on name ascending
  }
        )
  var header = ['Nom de famille','Prénom','Email','Déjà Connecté?']
  sheet.getRange(1,1,1,r[0].length).setValues([header]).setFontWeight('bold')
  .setBackground('silver').setBorder(true,true,true,true,true,true);
  sheet.getRange(2,1,r.length,r[0].length).setValues(r);
  sheet.getRange(2,1,f.length,f[0].length).setBackgroundColors(f);
  sheet.getDataRange().setVerticalAlignment('middle').setFontSize(11);
}

スクリプトは非常に単純です。すべてのドメイン ユーザーを取得し、書式を設定してスプレッドシートにリストを表示します。また、ユーザーが domainUser クラスのgetAgreedToTerms()メソッドを使用してアカウントを初期化したかどうかを示すことになっています。

ドメインの 1 つで実際の結果が得られます (Google Apps 管理コントロール パネルで確認できる結果と同じです) が、2 番目のドメインでは、新しく作成されたユーザーであってもgetAgreedToTerms()常に が返さtrueれます (ドメイン設定が同じであることがわかります)。 .)

どこかに欠けているものはありますか?ユーザーが自分のアカウントに接続したかどうかを確認する別の方法はありますか?

これは実際にはプログラミングの問題ではないことはわかっていますが、私たちの多くが管理する Google Apps アカウントとユーザーを持っていることも知っています :-) それで、試してみる価値があると判断しました。

4

1 に答える 1

0

ドメインは同時に作成されましたか? Google が古い GApps インフラストラクチャから移行したため、かなりの数のバックエンド アップグレードが行われました。時々、伝播されない設定が見られます。

最善の方法は、Admin SDK を使用して、結果が Apps Script ラッパーを介して取得したものと一致しているかどうかを確認することだと思います。とてもクールです。ページ自体で認証して結果を取得できます。

https://developers.google.com/admin-sdk/directory/v1/reference/users/get

于 2013-09-08T18:37:58.727 に答える