G Suite: verificare duplicati prima del caricamento

Utilizzare un foglio .csv per il caricamento velocizza e semplifica le operazioni di creazione dei nuovi utenti su G Suite, ma è bene verificare prima di questa operazione se per caso non stiamo caricando username duplicati.

Se ci troviamo in questa situazione – solitamente perché stiamo caricando un utente omonimo ad uno già esistente – caricando il .csv non verrà creato il nuovo utente, ma verrà aggiornato l’utente omonimo già esistente. Le conseguenze di solito sono spiacevoli. Verrà reimpostata la password dell’utente già esistente, con la conseguenza di tagliarlo fuori dal proprio account, almeno temporaneamente. Inoltre l’utente potrebbe venire spostato in un’altra organizzazione, e quindi ritrovarsi permessi diversi per le applicazioni che usa.

Purtroppo la console di amministrazione di G Suite non offre una funzione integrata per verificare eventuali utenti duplicati prima del caricamento del csv. Veniamo avvisati sì dalla notifica ricevuta tramite email – o dalle Attività in console – del numero di utenti aggiunti e aggiornati. Da questo numero possiamo dedurre se c’è stato un caso di utente già esistente. A questo punto però il danno è fatto: dovremo ricavare dai log il nome utente e rimediare.

Ci sono diverse procedure per verificare manualmente di non incappare in questo problema. In questo articolo trovi invece un semplice script da inserire nel tuo foglio di lavoro, per effettuare in modo automatico questo controllo. L’utilizzo dello script non richiede conoscenze di programmazione: basta utilizzare una voce di menu del foglio di lavoro per far partire il controllo. Di seguito le istruzioni per importare lo script in un foglio, attivarlo ed utilizzarlo.

Istruzioni per l’utilizzo

Lo script va importato nel foglio di lavoro – naturalmente parliamo di Fogli Google – che usi per la generazione del file .csv da utilizzare per il caricamento. Più sotto le istruzioni per farlo.

Una volta importato e attivato lo script, l’utilizzo è molto semplice. Lo script crea una nuova voce di menu Funzioni utente. Al suo interno trovi due ulteriori voci. La prima – Istruzioni per l’uso – riporta sinteticamente le indicazioni che trovi in questo post. La seconda – Verifica duplicati selezionati – fa partire la funzione di ricerca dei duplicati.

Per utilizzare la funzione devi:

  • posizionarti nel foglio con i nuovi username
  • selezionare con il mouse tutte le celle contenenti gli username (e verificare che rimangano selezionate prima di passare al punto successivo)
  • cliccare Funzioni utente > Verifica duplicati selezionati

Lo script effettuerà la ricerca tra tutti gli utenti già esistenti nel tuo dominio: se trova uno username uguale a uno di quelli che stai per caricare, ti verrà segnalato in due modi. Terminato lo script, una finestra pop-up ti avvisa del numero di duplicati trovati. Dopo aver chiuso questa finestra, le righe degli eventuali duplicati verranno evidenziate in rosso.

Puoi ora intervenire manualmente per modificare gli username in potenziale conflitto. Puoi ripetere la funzione per essere sicuro che anche gli username modificati non abbiamo corrispondenti già esistenti. Quando la funzione darà esito negativo, potrai scaricare il file .csv e procedere al caricamento senza brutte sorprese.

Lo script

Questo lo script per esteso:

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Funzioni utente')
  .addItem('Istruzioni per l\'uso', 'istruzioni')
  .addItem('Verifica duplicati selezionati', 'verificaDuplicatiSelezionati')
  .addToUi()
}

function istruzioni() {
  var ui = SpreadsheetApp.getUi();
  var messaggio = `Usa la funzione Verifica duplicati selezionati prima di caricare nuovi utenti con foglio .csv nella console di amministrazione.
  Verificherà se nel tuo dominio esistono già utenti con uno username tra quelli che stai per caricare.
  Procedi così:
  1. Posizionati nel foglio di lavoro contenente la lista degli username che caricherai
  2. Seleziona con il mouse tutte le celle contenenti gli username (controlla che rimangano selezionate prima del passaggio 3)
  3. Avvia la funzione Verifica duplicati selezionati
  Al termine dello script una finestra ti avviserà del numero di duplicati trovati.
  Se vengono trovati duplicati, verranno evidenziate in rosso le righe relative.
  Potrai quindi intervenire manualmente per cambiare gli username in conflitto.
  Puoi ripetere la funzione di controllo di nuovo, se occorre, per il numero di volte che vuoi.`;
  ui.alert(messaggio);
}


function verificaDuplicatiSelezionati() {
  
  var ui = SpreadsheetApp.getUi();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var foglio = ss.getActiveSheet();
  var dominio = Session.getActiveUser().getEmail().split("@")[1];
  foglio.getDataRange().clearFormat();
  
  var utentiSelezionati = foglio.getActiveRange().getValues();
  var utentiDominio = [];
  var numeroDuplicati = 0;
  
  var pageToken;
  var page;
  do {
    page = AdminDirectory.Users.list({
      domain: dominio,
      orderBy: 'givenName',
      maxResults: 100,
      pageToken: pageToken
    });
    var users = page.users;
    if (users) {
      for (var i = 0; i < users.length; i++) {
        var user = users[i];
        utentiDominio.push(user.primaryEmail);
      }
    }
    
    pageToken = page.nextPageToken;
    Utilities.sleep(1000);
  } while (pageToken);
  
  for (var j = 0; j < utentiSelezionati.length; j++) {
    if (utentiDominio.includes(utentiSelezionati[j][0].toString())) {
      foglio.getRange(j + 2, 1, 1, 2).setBackground('red');
      numeroDuplicati++;
      
    }
  }
  ui.alert('Sono stati trovati ' + numeroDuplicati + ' utenti già esistenti.');

}

Puoi utilizzare il testo dello script copiandolo dal box qui sopra, oppure scaricando il file di testo qui di seguito:

Aggiungere lo script al proprio foglio

Lo script va aggiunto ad un foglio di lavoro – funziona naturalmente solo in Fogli Google. Apri il foglio di lavoro che usi per creare gli utenti, e da cui poi scaricherai il .csv da utilizzare nella console. Se ti occorre, abbiamo già presentato un esempio di foglio per il caricamento utenti che integra automazioni utili: creazione automatica di username e password, verifica ed eliminazione di caratteri speciali, creazione informativa con credenziali ed eventuale invio per mail.

Una volta aperto il foglio, clicca nel menu Strumenti > Editor di script. Posizionati in alto a sinistra su Progetto senza titolo, dai un nome a piacere (Verifica duplicati, ad esempio) e clicca OK.

Nella finestra in cui inserire il codice, trovi una funzione vuota come questa:

function myFunction() {
  
}

Elimina tutto questo contenuto, copia il testo del nostro script e incollalo lì. Ora clicca sul menu Risorse > Servizi avanzati di Google, e nella finestra che compare attiva la voce Admin Directory API, quindi dai OK. Salva lo script con l’icona solita.

A questo punto puoi chiudere la scheda dello script e tornare al foglio di lavoro. Dovrai chiudere e riaprire (o semplicemente ricaricare) il foglio perché le modifiche abbiano effetto. Ora trovi il nuovo menu Funzioni utente, con le voci ulteriori per le istruzioni e l’utilizzo vero e proprio dello script.

La prima esecuzione della funzione non darà risultati: dovrai prima accettare i permessi richiesti. Una volta accettati (operazione da fare una sola volta), puoi far partire nuovamente la funzione, che ora effettuerà il controllo. D’ora in poi potrai verificare autonomamente, e con un solo click, gli eventuali duplicati prima di caricare i nuovi utenti in G Suite.


Potrebbe interessarti anche Eliminare in blocco alias di utenti e gruppi in G Suite

Se vuoi essere avvisato dei prossimi articoli, iscriviti alla Newsletter: riceverai una notifica quando viene pubblicato un nuovo post su questo sito.

Condividi questo contenuto

Taggato come

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Iscriviti alla Newsletter

I tuoi dati rimarranno privati; verranno condivisi solo con chi rende possibile questo servizio. Leggi la privacy policy.