skip to content

Recherche

Syspirit
FR

SharePoint

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

365
Publié le
Karl Certa

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 "[email protected]" -Template "STS#3"
🆕 Créer site communicationNew-SPOSite -Url "https://tenant.sharepoint.com/sites/news" -Title "Actualités" -Owner "[email protected]" -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 "[email protected]"
➖ Retirer administrateurRemove-PnPSiteCollectionAdmin -Owners "[email protected]"
👥 Ajouter utilisateurAdd-PnPGroupMember -Group "Site Members" -LoginName "[email protected]"
🚫 Retirer utilisateurRemove-PnPGroupMember -Group "Site Members" -LoginName "[email protected]"
📋 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