Découvrez qui peut accéder à vos fichiers Google Drive

Dans notre ère numérique, partager et collaborer en ligne est quotidien. Mais, il est crucial de surveiller l’accès à nos données sur Google Drive.

Nous utilisons souvent des documents ou formulaires sans penser à la sécurité. Une question se pose alors : qui peut voir mes fichiers Google Drive ? Pour y répondre, j’ai exploré DriveApp et Google Apps Script.

J’ai commencé cette quête en examinant mes fichiers Google Drive. J’ai réalisé que plusieurs personnes y avaient accès. Cette découverte m’a poussé à questionner la sécurité de mes données.

Ainsi, j’ai utilisé DriveApp et Google Apps Script pour gérer les permissions de fichier.

Pourquoi utiliser Google Apps Script ?

Google Apps Script est un langage de script basé sur JavaScript qui vous permet d’automatiser des tâches dans les applications Google. Il est particulièrement utile pour créer des scripts personnalisés qui répondent à des besoins spécifiques dans Google Sheets, Docs, Drive, et plus encore.

Présentation du script : Gestion avancée des fichiers partagés

Notre script offre une solution simple pour analyser et répertorier les fichiers et dossiers partagés dans un Google Drive. Il permet aux utilisateurs de sélectionner un dossier spécifique et d’obtenir un rapport détaillé des éléments partagés, y compris avec qui ils sont partagés. Voici une brève explication de son fonctionnement.

Fonction onOpen()

Cette fonction ajoute un menu personnalisé dans Google Sheets, offrant à l’utilisateur la possibilité d’analyser un dossier spécifique en entrant son ID.

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('Scripts personnalisés')
    .addItem('Analyser le dossier spécifié', 'demanderIdDossier')
    .addToUi();
}


Fonction demanderIdDossier()

Elle ouvre une boîte de dialogue permettant à l’utilisateur de saisir l’ID du dossier à analyser. Si l’utilisateur confirme, le script procède à l’analyse; sinon, une alerte est affichée.

function demanderIdDossier() {
  const ui = SpreadsheetApp.getUi();
  const reponse = ui.prompt('Sélection du dossier', 'Veuillez entrer l'ID du dossier :', ui.ButtonSet.OK_CANCEL);

  if (reponse.getSelectedButton() == ui.Button.OK) {
    const idDossier = reponse.getResponseText();
    listerFichiersEtDossiersPartagesOptimise(idDossier);
  } else {
    ui.alert('Aucun dossier sélectionné. L'opération a été annulée.');
  }
}


Fonction listerFichiersEtDossiersPartagesOptimise()

Cette fonction est le cœur du script. Elle parcourt récursivement le dossier sélectionné, analysant chaque fichier et sous-dossier pour déterminer avec qui ils sont partagés. Elle génère ensuite un rapport dans une nouvelle feuille de Google Sheets.

function listerFichiersEtDossiersPartagesOptimise(idDossier) {
  const resultats = [["Type", "Nom", "Partagé avec"]];
  const emailUtilisateurActuel = Session.getActiveUser().getEmail();
  const dossierSelectionne = DriveApp.getFolderById(idDossier);

  function parcourirDossiers(dossier) {
    const fichiers = dossier.getFiles();
    while (fichiers.hasNext()) {
      const fichier = fichiers.next();
      enregistrerUtilisateursPartages(fichier, "Fichier");
    }
    const sousDossiers = dossier.getFolders();
    while (sousDossiers.hasNext()) {
      const sousDossier = sousDossiers.next();
      enregistrerUtilisateursPartages(sousDossier, "Dossier");
      parcourirDossiers(sousDossier);
    }
  }


Fonction enregistrerUtilisateursPartages()

La fonction enregistrerUtilisateursPartages joue un rôle central dans notre script en déterminant avec qui chaque fichier et dossier est partagé. Son but est de collecter et d’enregistrer les informations de partage pour chaque élément analysé dans le dossier sélectionné.

  function enregistrerUtilisateursPartages(element, type) {
    let editeurs = [];
    let visionneurs = [];
    let partagePublic = "";
    try {
      editeurs = element.getEditors();
      visionneurs = element.getViewers();
      const access = element.getSharingAccess();
      const permission = element.getSharingPermission();
      if (access === DriveApp.Access.ANYONE || access === DriveApp.Access.ANYONE_WITH_LINK) {
        partagePublic = "Tout utilisateur disposant du lien";
        if (permission === DriveApp.Permission.EDIT) {
          partagePublic += " (Édition)";
        } else if (permission === DriveApp.Permission.VIEW) {
          partagePublic += " (Visualisation)";
        }
      }
    } catch(e) {
      console.error('Erreur d'accès à l'élément : ' + element.getName(), e);
    }
    let emailsPartages = editeurs.concat(visionneurs)
                                  .map(utilisateur => utilisateur.getEmail())
                                  .filter(email => email !== emailUtilisateurActuel);
    if (partagePublic !== "") {
      emailsPartages.push(partagePublic);
    }
    if (emailsPartages.length > 0) {
      resultats.push([type, element.getName(), emailsPartages.join(", ")]);
    }
  }

Comment installer et utiliser le script ?

  1. Ouvrez un nouveau document Google Sheets.
  2. Accédez à Extensions > Apps Script.
  3. Copiez et collez le script fourni dans l’éditeur Apps Script.
  4. Sauvegardez et fermez l’éditeur.
  5. Revenez à votre feuille de calcul et rechargez la page. Un nouveau menu ‘Scripts personnalisés’ apparaîtra.

Cas d’utilisation

Cet outil est idéal pour les gestionnaires de projet, les équipes de travail collaboratif, et toute personne cherchant à maintenir une visibilité sur les partages de documents. Que ce soit pour auditer la sécurité des informations ou simplement pour organiser des dossiers de travail, ce script offre une solution efficace et facile à déployer.


L’automatisation des tâches répétitives peut grandement améliorer l’efficacité et la sécurité de votre gestion de documents. Avec ce script Google Apps Script, vous disposez d’un outil puissant pour garder un œil sur les fichiers et dossiers partagés dans votre organisation.

Vous souhaitez automatiser votre gestion de documents sur Google Drive sans vous soucier des détails techniques ? Je suis là pour vous aider. En tant que spécialiste en automatisation Google Apps Script, je propose mes services pour installer, personnaliser et vous former à l’utilisation de ce script. Gagnez du temps et optimisez votre efficacité avec une solution sur mesure qui répond à vos besoins.

Contactez-moi pour transformer votre gestion de documents dès aujourd’hui.