Optimiser la gestion des groupes par nom de domaine dans Google Workspace avec un script Google Apps Script dynamique

Gérer les groupes et les utilisateurs dans Google Workspace, en particulier lorsqu’il s’agit de les organiser par nom de domaine, peut rapidement devenir une tâche complexe et chronophage. Pour simplifier cette gestion, nous avons développé un script Google Apps Script qui automatise la gestion des groupes, en veillant à ce que les utilisateurs soient ajoutés aux bons groupes en fonction de leur domaine de messagerie.

Objectifs du script

Ce script a pour but de :

  • Récupérer dynamiquement les domaines utilisés par les utilisateurs dans votre Google Workspace.
  • Vérifier l’existence des groupes associés à ces domaines et s’assurer que les membres sont correctement classés selon leur domaine.
  • Ajouter ou retirer automatiquement les utilisateurs aux groupes appropriés pour garantir une organisation optimale.
  • Envoyer une alerte par email si des groupes sont manquants.

Pourquoi organiser les groupes par nom de domaine ?

L’organisation des utilisateurs par groupe basé sur leur nom de domaine permet une gestion plus logique et structurée, surtout si vous avez des entités ou des filiales utilisant des domaines différents. Cela facilite non seulement l’administration des comptes, mais améliore également la clarté et l’efficacité des communications internes.

Fonctionnalités du script

Le script fonctionne en plusieurs étapes :

1. Liste des domaines dynamiques

Le script récupère tous les domaines associés à votre Google Workspace et ne prend en compte que ceux qui ont au moins un utilisateur. Cela garantit que les groupes sont créés uniquement pour les domaines réellement utilisés.

2. Vérification et mise à jour des groupes par domaine

  • Vérifie que chaque groupe existe pour chaque domaine détecté.
  • Classe les utilisateurs dans les groupes correspondant à leur domaine de messagerie.
  • Garantit que les utilisateurs qui ne devraient pas être dans un groupe en sont retirés.

3. Alerte email en cas de groupes manquants

Le script envoie une alerte par email si des groupes n’existent pas pour certains domaines, vous permettant ainsi de prendre des mesures correctives rapidement.

Avantages de l’organisation des groupes par nom de domaine

  • Clarté et structure : En organisant vos groupes par domaine, il est plus facile de savoir à quelle entité ou filiale appartient chaque utilisateur.
  • Gestion simplifiée : Facilite la gestion centralisée et la maintenance des utilisateurs dans Google Workspace.
  • Sécurité améliorée : Permet d’appliquer des politiques spécifiques par domaine en utilisant des groupes bien structurés.

Extrait du code principal

Voici un extrait du code principal qui gère la vérification et la mise à jour des groupes par nom de domaine :

function verifierEtAjouterUtilisateursAuxGroupes() {

  const domaines = listerDomainesAvecUtilisateurs();

  if (!domaines || domaines.length === 0) {

    Logger.log('Aucun domaine avec des utilisateurs trouvé.');

    return;

  }

  const emailAlerte = 'monadresse@exemple.com';

  let groupesManquants = [];

  domaines.forEach(domaine => {

    const adresseGroupe = `grp_domaine@${domaine}`;

    Logger.log(`Traitement du domaine : ${domaine} et du groupe : ${adresseGroupe}`);

    if (!groupeExiste(adresseGroupe)) {

      Logger.log(`Le groupe ${adresseGroupe} est introuvable.`);

      groupesManquants.push(adresseGroupe);

      return;

    }

    const utilisateurs = obtenirUtilisateursDuDomaine(domaine);

    if (utilisateurs.length === 0) {

      Logger.log(`Aucun utilisateur trouvé dans le domaine ${domaine}`);

      return;

    }

    const membresGroupe = obtenirMembresDuGroupe(adresseGroupe);

    if (!membresGroupe) {

      Logger.log(`Erreur lors de la récupération des membres du groupe ${adresseGroupe}.`);

      return;

    }

    const emailsMembres = membresGroupe.map(membre => membre.email.toLowerCase());

    utilisateurs.forEach(utilisateur => {

      if (!emailsMembres.includes(utilisateur.primaryEmail.toLowerCase())) {

        ajouterUtilisateurAuGroupe(utilisateur.primaryEmail, adresseGroupe);

      }

    });

    membresGroupe.forEach(membre => {

      const domaineUtilisateur = membre.email.split('@')[1];

      const aliasCorrespondant = utilisateurs.some(utilisateur =>

        utilisateur.primaryEmail.toLowerCase() === membre.email.toLowerCase() ||

        (utilisateur.aliases || []).some(alias => alias.toLowerCase() === membre.email.toLowerCase())

      );

      if (domaineUtilisateur !== domaine && !aliasCorrespondant) {

        retirerUtilisateurDuGroupe(membre.email, adresseGroupe);

      }

    });

  });

  if (groupesManquants.length > 0) {

    envoyerAlerteGroupesManquants(emailAlerte, groupesManquants);

  }

  Logger.log('Vérification terminée pour tous les domaines.');

}

Mise en oeuvre et support

Ce script est une solution idéale pour les entreprises qui cherchent à automatiser et à optimiser la gestion des groupes et des utilisateurs dans Google Workspace, en particulier lorsqu’il s’agit de les organiser par nom de domaine.

Si vous avez besoin d’assistance pour mettre en place ce script ou pour le personnaliser selon les besoins de votre entreprise, je suis à votre disposition pour vous aider.

Je suis prêt à vous accompagner dans la mise en œuvre de cette solution pour une gestion efficace et simplifiée de vos groupes Google Workspace !


Soutenez mon travail

Si cet article vous a été utile et que vous souhaitez soutenir mon travail, vous pouvez me remercier en faisant un don via PayPal. Chaque contribution est grandement appréciée et m’aide à continuer à partager des astuces et conseils sur ce blog. Merci pour votre soutien !

L’Atelier Informatique vous accompagne dans vos projets technologiques en vous proposant des tutoriels et des solutions pour optimiser vos tâches quotidiennes.