📄 Nettoyage des utilisateurs dans Azure AD & SharePoint

Suppression d'un utilisateur des Sites Sharepoint / groupes M365 


 CHEMIN VERS LE SCRIPT (à exécuter sur l'AD / Azure AD cible / Tenant cible ) -> \OneDrive - LIMPIDIT\Technique - Documents\2.S&R\Exploitation\Script\RemoveUserFromAllSPsitesAndM365.ps1


📘 Procédure – Script de nettoyage des utilisateurs dans Azure AD & SharePoint

🎯 Objectif

Ce script permet de supprimer automatiquement des utilisateurs (listés dans un fichier CSV) de :

  • Tous leurs groupes Azure AD

  • Tous les sites SharePoint Online

    Il intègre des contrôles préalables, une gestion des erreurs et génère un rapport final.

🛠️ Étapes du script

1. Paramètres d’entrée

  • $CSVPath → chemin du fichier CSV contenant une colonne UserPrincipalName (liste des utilisateurs à traiter).

  • $SharePointAdminUrl → URL de l’admin SharePoint (ex: https://xxxx-admin.sharepoint.com).

2. Vérification des prérequis (Test-Prerequisites)

  • Vérifie que PowerShell ≥ 5.0 est installé.

  • Vérifie si l’utilisateur a des droits administrateur.

  • Vérifie la politique d’exécution (bloquante si Restricted).

  • Vérifie l’existence du fichier CSV.

    • ⚠️ Si absent → propose de générer un fichier CSV d’exemple (New-ExampleCSV).

3. Installation et import des modules requis (Install-RequiredModules)

Le script s’assure que les modules suivants sont installés et à jour :

  • Microsoft.Online.SharePoint.PowerShell (gestion SharePoint Online).

  • Microsoft.Graph (SDK Graph principal).

  • Microsoft.Graph.Users (gestion des utilisateurs).

  • Microsoft.Graph.Groups (gestion des groupes).

Étapes :

  • Installe le module s’il n’existe pas.

  • Propose une mise à jour si une version plus récente est disponible.

  • Importe le module dans la session PowerShell.

4. Connexion aux services Microsoft (Connect-Services)

  • Connexion à SharePoint Online via Connect-SPOService.

  • Connexion à Microsoft Graph avec les droits :

    • Group.ReadWrite.All

    • User.Read.All

  • Vérifie l’identité de l’utilisateur connecté.

5. Confirmation utilisateur

⚠️ Affiche un message d’avertissement précisant que tous les groupes et accès SharePoint des utilisateurs listés dans le CSV seront supprimés.

➡️ L’utilisateur doit taper CONFIRMER pour continuer.

6. Nettoyage des utilisateurs (Remove-UserFromServices)

Pour chaque utilisateur du fichier CSV :

  1. Azure AD (via Microsoft Graph)

    • Recherche l’utilisateur (Get-MgUser).

    • Liste ses groupes (Get-MgUserMemberOf).

    • Supprime l’utilisateur de chaque groupe (Remove-MgGroupMemberByRef).

  2. SharePoint Online

    • Récupère la liste de tous les sites (Get-SPOSite).

    • Vérifie si l’utilisateur est membre d’un site (Get-SPOUser).

    • Supprime l’utilisateur du site (Remove-SPOUser).

Un suivi est affiché :

  • Progression par utilisateur.

  • Groupes/suppressions effectués.

  • Erreurs éventuelles.

7. Rapport final

En fin d’exécution, le script affiche un récapitulatif :

  • Nombre total d’utilisateurs traités.

  • Nombre de groupes Azure AD nettoyés.

  • Nombre de sites SharePoint nettoyés.

  • Nombre d’erreurs rencontrées.

➡️ Si erreurs → elles sont listées à l’écran et enregistrées dans un fichier log :

C:\Scripts\Logs\cleanup_errors_YYYYMMDD_HHMMSS.txt.

8. Déconnexion des services

  • Déconnexion de SharePoint Online et Microsoft Graph.

9. Fin du script

Message de succès ✅ + rappel de consulter les logs en cas d’erreurs.

📂 Exemple de fichier CSV attendu

UserPrincipalName
utilisateur1@mondomaine.com
utilisateur2@mondomaine.com
utilisateur3@mondomaine.com

👉 En résumé :

Ce script est une procédure complète de nettoyage automatisé qui :

  1. Vérifie l’environnement,

  2. Charge les modules nécessaires,

  3. Se connecte aux services Microsoft,

  4. Supprime les utilisateurs de tous leurs groupes Azure AD et SharePoint,

  5. Fournit un rapport détaillé et conserve un historique des erreurs.