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 :
Azure AD (via Microsoft Graph)
Recherche l’utilisateur (Get-MgUser).
Liste ses groupes (Get-MgUserMemberOf).
Supprime l’utilisateur de chaque groupe (Remove-MgGroupMemberByRef).
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 :
Vérifie l’environnement,
Charge les modules nécessaires,
Se connecte aux services Microsoft,
Supprime les utilisateurs de tous leurs groupes Azure AD et SharePoint,
Fournit un rapport détaillé et conserve un historique des erreurs.