skip to content

Recherche

SharePoint

Administration SharePoint Online - sites, rôles, permissions, Teams et scripts PowerShell !

SharePoint Online est la plateforme collaborative cloud de Microsoft permettant la création de sites d’équipe, le stockage de documents et la gestion des permissions dans un environnement Microsoft 365.

📦 Installation et connexion

📌 Action🧠 Commande PowerShell
🔧 Installer module SharePointInstall-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
🔧 Installer PnP PowerShellInstall-Module -Name PnP.PowerShell -Force
🔗 Se connecter (Admin)Connect-SPOService -Url https://tenant-admin.sharepoint.com
🔗 Se connecter (PnP)Connect-PnPOnline -Url https://tenant.sharepoint.com/sites/sitename -Interactive
✅ Vérifier connexionGet-SPOTenant
🚪 Se déconnecterDisconnect-SPOService

🏢 Gestion des sites

📌 Action🧠 Commande
📋 Lister tous les sitesGet-SPOSite -Limit All
🔍 Rechercher un siteGet-SPOSite -Filter "Url -like '*marketing*'"
🆕 Créer site d’équipeNew-SPOSite -Url "https://tenant.sharepoint.com/sites/marketing" -Title "Marketing" -Owner "admin@tenant.com" -Template "STS#3"
🆕 Créer site communicationNew-SPOSite -Url "https://tenant.sharepoint.com/sites/news" -Title "Actualités" -Owner "admin@tenant.com" -Template "SITEPAGEPUBLISHING#0"
✏️ Modifier titre siteSet-SPOSite -Identity "https://tenant.sharepoint.com/sites/marketing" -Title "Marketing Team"
🗑️ Supprimer siteRemove-SPOSite -Identity "https://tenant.sharepoint.com/sites/oldsite" -Confirm:$false
🔄 Restaurer site suppriméRestore-SPODeletedSite -Identity "https://tenant.sharepoint.com/sites/oldsite"

🎭 Rôles et permissions SharePoint

Niveaux d’autorisation par défaut

📌 Rôle🔧 Permissions💼 Usage typique
PropriétaireContrôle total du siteAdministrateurs d’équipe
MembreLecture, écriture, suppressionCollaborateurs actifs
VisiteurLecture uniquementConsultants, invités
ConcepteurMembre + gestion listes/pagesResponsables contenu
ContributeurLecture, écriture (pas suppression)Utilisateurs standards

Permissions détaillées

📌 Niveau📖 Lecture✏️ Écriture🗑️ Suppression⚙️ Administration🔧 Design
Contrôle total
Conception
Collaboration
Contribution
Lecture

👥 Gestion des permissions

📌 Action🧠 Commande
👁️ Voir permissions siteGet-PnPSiteCollectionAdmin -Connection $conn
➕ Ajouter administrateur siteAdd-PnPSiteCollectionAdmin -Owners "admin@tenant.com"
➖ Retirer administrateurRemove-PnPSiteCollectionAdmin -Owners "admin@tenant.com"
👥 Ajouter utilisateurAdd-PnPGroupMember -Group "Site Members" -LoginName "user@tenant.com"
🚫 Retirer utilisateurRemove-PnPGroupMember -Group "Site Members" -LoginName "user@tenant.com"
📋 Lister membres groupeGet-PnPGroupMember -Group "Site Members"

Héritage des permissions

# Briser l'héritage des permissions d'une liste
Set-PnPList -Identity "Documents" -BreakRoleInheritance -CopyRoleAssignments
 
# Restaurer l'héritage des permissions
Set-PnPList -Identity "Documents" -ResetRoleInheritance

🚀 Intégration avec Microsoft Teams

📌 Action🧠 Commande/Interface
🔗 Associer site existant à TeamsInterface Teams > Ajouter un onglet > SharePoint
📁 Accéder aux fichiers Teamshttps://tenant.sharepoint.com/sites/teamname/Shared Documents
👁️ Voir sites liés à TeamsGet-SPOSite | Where-Object {$_.Template -eq "GROUP#0"}
🆕 Créer équipe Teams (crée le site)Interface Teams ou New-Team (module Teams)
⚙️ Gérer permissions via TeamsInterface Teams > Paramètres > Membres

Structure site Teams

Site SharePoint Teams
├── 📁 Documents partagés (Bibliothèque par défaut)
├── 📁 [Canal] - Général (Dossier automatique)
├── 📁 [Canal] - Marketing (Un dossier par canal)
└── 📋 Listes personnalisées (si créées)

💾 Stockage et quotas

📌 Action🧠 Commande
📊 Voir stockage tenantGet-SPOTenant | Select StorageQuota,StorageQuotaAllocated
📈 Voir usage par siteGet-SPOSiteContentMoveState -Identity "https://tenant.sharepoint.com/sites/marketing"
⚙️ Définir quota siteSet-SPOSite -Identity "https://tenant.sharepoint.com/sites/marketing" -StorageQuota 2048
📋 Lister sites > 1GBGet-SPOSite -Limit All | Where-Object {$_.StorageUsageCurrent -gt 1024} | Select Url,StorageUsageCurrent

📊 Scripts d’export et gestion

Export liste des sites

# Export complet des sites avec détails
Get-SPOSite -Limit All | Select Url,Title,Owner,Template,StorageUsageCurrent,LastContentModifiedDate | 
Export-Csv -Path "C:\temp\SharePointSites.csv" -NoTypeInformation -Encoding UTF8

Export permissions par site

# Script d'export des permissions détaillées
$sites = Get-SPOSite -Limit All
$results = foreach($site in $sites) {
    Connect-PnPOnline -Url $site.Url -Interactive
    $groups = Get-PnPGroup
    foreach($group in $groups) {
        $members = Get-PnPGroupMember -Group $group.Title
        foreach($member in $members) {
            [PSCustomObject]@{
                SiteUrl = $site.Url
                SiteTitle = $site.Title
                GroupName = $group.Title
                MemberName = $member.Title
                MemberEmail = $member.Email
                MemberType = $member.PrincipalType
            }
        }
    }
}
$results | Export-Csv -Path "C:\temp\SharePointPermissions.csv" -NoTypeInformation -Encoding UTF8

Création sites en masse via CSV

# Format CSV attendu : SiteName,SiteUrl,Owner,Template
$sites = Import-Csv -Path "C:\temp\NewSites.csv" -Delimiter ";"
 
foreach($site in $sites) {
    try {
        New-SPOSite -Url $site.SiteUrl -Title $site.SiteName -Owner $site.Owner -Template $site.Template -Wait
        Write-Host "✓ Site créé : $($site.SiteName)" -ForegroundColor Green
    } catch {
        Write-Host "✗ Erreur création $($site.SiteName) : $($_.Exception.Message)" -ForegroundColor Red
    }
}

Ajout d’utilisateurs en masse

# Format CSV : SiteUrl,UserEmail,Permission
$permissions = Import-Csv -Path "C:\temp\SitePermissions.csv" -Delimiter ";"
 
foreach($perm in $permissions) {
    try {
        Connect-PnPOnline -Url $perm.SiteUrl -Interactive
        $groupName = switch($perm.Permission) {
            "Read" { "Site Visitors" }
            "Contribute" { "Site Members" }
            "FullControl" { "Site Owners" }
        }
        Add-PnPGroupMember -Group $groupName -LoginName $perm.UserEmail
        Write-Host "✓ Ajouté $($perm.UserEmail) à $($perm.SiteUrl)" -ForegroundColor Green
    } catch {
        Write-Host "✗ Erreur ajout $($perm.UserEmail) : $($_.Exception.Message)" -ForegroundColor Red
    }
}

🔧 Templates de sites courants

📌 Template🏷️ Code💡 Usage
Site d’équipeSTS#3Collaboration équipe standard
Site communicationSITEPAGEPUBLISHING#0News, annonces corporate
Site viergeSTS#1Site personnalisé from scratch
Wiki d’entrepriseWIKI#0Base de connaissances
Centre de documentsBDR#0Gestion documentaire avancée

🚨 Dépannage courant

📌 Problème🔧 Solution
🚫 Accès refuséVérifier permissions, héritage, groupes AD/Entra
⏱️ Site lentVérifier taille bibliothèques, nombre d’éléments, vues
📱 Mobile ne fonctionne pasActiver “Autoriser applications mobiles” dans paramètres
🔄 Sync OneDrive échoueRéinitialiser client, vérifier caractères spéciaux
💾 Quota dépasséAugmenter quota ou nettoyer anciennes versions