Files
Sharepoint-Toolbox/README.md
2026-03-10 10:29:29 +01:00

125 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
![SPToolbox-logo](https://git.azuze.fr/kawa/Sharepoint-Toolbox/raw/branch/main/SPToolbox-logo-dark.png)
Application PowerShell avec interface graphique (WinForms) pour administrer, auditer et exporter des données depuis des sites SharePoint Online.
## Prérequis
- **PowerShell 5.1** ou supérieur
- **Module PnP.PowerShell** (`Install-Module PnP.PowerShell`)
- **Azure AD App Registration** avec les permissions déléguées nécessaires (Client ID requis)
- Accès au tenant SharePoint cible
## Lancement
```powershell
.\Sharepoint_Export_v6.0.ps1
```
---
## Fonctionnalités
### Connexion et profils
- Saisie du **Tenant URL**, **Client ID** et **Site URL**
- **Profils sauvegardés** : créez, renommez, supprimez et chargez des profils de connexion réutilisables
- **Sélecteur de sites** : parcourez et cochez plusieurs sites du tenant en une seule vue (chargement asynchrone)
- Dossier de sortie configurable pour tous les exports
---
### Permissions Report
Audit complet des permissions d'un ou plusieurs sites.
- Scan des **bibliothèques, listes et dossiers** (profondeur configurable ou illimitée)
- Option **Recursive** pour inclure les sous-sites
- Inclusion optionnelle des permissions héritées
- Export **CSV** (données brutes, compatibles Excel) ou **HTML** (rapport visuel avec tableau interactif, filtrage, tri par colonne, regroupement par utilisateur/groupe)
---
### Storage Metrics
Analyse de l'occupation du stockage SharePoint.
- Répartition **par bibliothèque** avec profondeur de dossiers configurable
- Option d'inclusion des **sous-sites**
- Métriques : taille totale, taille des versions, nombre d'éléments, dernière modification
- Export **CSV** ou **HTML** (rapport avec graphiques de répartition et arborescence dépliable)
---
### Templates
Capture et réapplication de la structure d'un site SharePoint.
- **Capture** : arborescence (bibliothèques et dossiers), permissions (groupes et rôles), paramètres du site (titre, langue), logo
- **Création** depuis un template : nouveau site Communication ou Teams à partir d'un template capturé, avec application sélective des éléments capturés
- Templates persistés localement dans `Sharepoint_Templates.json`
---
### Recherche de fichiers
Recherche avancée de fichiers à travers les bibliothèques d'un site.
| Filtre | Description |
|---|---|
| Extension(s) | Ex : `docx pdf xlsx` |
| Nom / Regex | Expression régulière appliquée sur le chemin du fichier |
| Créé après / avant | Plage de dates de création |
| Modifié après / avant | Plage de dates de modification |
| Créé par | Nom ou email de l'auteur |
| Modifié par | Nom ou email du dernier éditeur |
| Bibliothèque | Limite la recherche à un chemin relatif |
| Max résultats | Plafond configurable (10 50 000) |
Utilise la **Search API SharePoint (KQL)** avec pagination automatique. Le filtre regex est appliqué côté client après récupération des résultats.
Export **CSV** ou **HTML** (tableau trié par colonne, filtrage en temps réel, indicateurs de tri).
---
### Doublons
Détection de fichiers ou dossiers en double au sein d'un site.
**Type de scan :**
- Fichiers en double (via Search API)
- Dossiers en double (via énumération des bibliothèques)
**Critères de comparaison (combinables) :**
- Nom — *toujours inclus comme critère principal*
- Taille identique
- Date de création identique
- Date de modification identique
- Nombre de sous-dossiers identique *(dossiers uniquement)*
- Nombre de fichiers identique *(dossiers uniquement)*
Le rapport HTML présente les doublons regroupés en **cartes dépliables** avec mise en évidence visuelle des valeurs identiques (vert) et différentes (orange), ainsi qu'un badge "Identiques" / "Différences détectées" par groupe.
Export **CSV** (avec colonne `DuplicateGroup`) ou **HTML**.
---
## Fichiers générés
| Fichier | Description |
|---|---|
| `Sharepoint_Export_profiles.json` | Profils de connexion sauvegardés |
| `Sharepoint_Templates.json` | Templates de sites capturés |
| `Permissions_<site>_<date>.csv/html` | Rapports de permissions |
| `Storage_<site>_<date>.csv/html` | Rapports de stockage |
| `FileSearch_<date>.csv/html` | Résultats de recherche de fichiers |
| `Duplicates_<mode>_<date>.csv/html` | Résultats du scan de doublons |
---
## Architecture technique
- Interface **WinForms** (PowerShell natif, aucune dépendance UI externe)
- Toutes les opérations longues s'exécutent dans des **runspaces séparés** pour ne pas bloquer l'interface
- Communication runspace → UI via **hashtable synchronisée** + timer
- Module **PnP.PowerShell** pour toutes les interactions avec l'API SharePoint