Rawpixel.com - stock.adobe.com
Administration : utilisez PowerShell pour surveiller SharePoint Online
L’ampleur et la complexité de certains environnements SharePoint Online peuvent rendre la maintenance difficile. Cet article vous apprend à utiliser des scripts d’automatisation pour surveiller la plateforme de collaboration.
SharePoint Online est une puissante plateforme de collaboration et de gestion des données basée sur le cloud dans Microsoft 365. Il est impératif de vérifier que SharePoint Online fonctionne de manière optimale en surveillant ses activités et la santé du site.
De nombreuses entreprises dépendent de SharePoint Online pour stocker, partager et gérer du contenu, des flux de travail et des processus d’entreprise. En tant qu’administrateur, vous avez besoin d’une méthode efficace et fiable pour surveiller les activités de SharePoint Online afin de maintenir l’intégrité et la performance de la plateforme.
Cet article explique comment utiliser les capacités d’automatisation de PowerShell pour créer des scripts permettant d’effectuer ces vérifications et de recueillir des informations détaillées sur l’utilisation du site. Et ce afin de s’assurer que l’entreprise respecte les exigences en matière de sécurité et de conformité.
L’automatisation via PowerShell est un moyen de personnaliser votre propre outil de surveillance pour gérer et maintenir SharePoint Online. Avec le module Microsoft SharePoint Online Services, le module EXO V3 et le module PnP PowerShell, les administrateurs peuvent adapter leurs stratégies de gestion aux besoins de leur entreprise grâce à des audits détaillés et à une gestion proactive de l’état des sites.
PowerShell offre aux administrateurs qui gèrent SharePoint Online un moyen d’améliorer la supervision et de rationaliser les opérations pour un environnement plus sain et plus sûr. Comme SharePoint Online et PowerShell évoluent, les administrateurs doivent se tenir au courant des derniers développements pour tirer pleinement parti de ces outils puissants.
Comment se connecter à SharePoint Online avec PowerShell ?
La première étape de la surveillance de SharePoint Online avec PowerShell consiste à connecter le service en cloud à l’outil d’automatisation.
Le module Microsoft.Online.SharePoint.PowerShell, que Microsoft appelle également module Microsoft SharePoint Online Services, est un ensemble de cmdlets PowerShell fournis par Microsoft pour la gestion de SharePoint Online. Ces cmdlets permettent d’effectuer diverses tâches administratives à partir de la ligne de commande.
Tout d’abord, installez le module sur votre système à l’aide de la commande suivante :
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
Ce module est destiné à Windows PowerShell. Vous pouvez charger le module dans PowerShell 7.x de la manière suivante :
Import-Module -Name Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell
Cette commande force le module à se charger à l’aide de Windows PowerShell, même si vous utilisez PowerShell 7. Toutes les cmdlets peuvent ne pas fonctionner comme prévu, en raison des différences sous-jacentes entre le nouveau PowerShell multi-plateforme et Windows PowerShell.
Ensuite, connectez-vous à votre instance SharePoint Online. Remplacez l’URL dans le code suivant par l’URL de votre centre d’administration SharePoint. Cet exemple vous demande vos identifiants Microsoft 365 et vous connecte au service SharePoint Online :
Connect-SPOService -Url https://tenant-admin.sharepoint.com
Le module PowerShell Patterns and Practices (PnP) offre une approche plus polyvalente et plus riche en fonctionnalités pour la gestion de SharePoint Online. Il fournit une bibliothèque de commandes PowerShell conçues pour exécuter plus efficacement des tâches complexes sur la plateforme. Installez le module PowerShell PnP à l’aide des commandes suivantes :
Install-Module PnP.PowerShell -Force
Register-PnPManagementShellAccess
Ensuite, connectez-vous à votre site SharePoint Online. Dans l’exemple suivant, remplacez $SiteURL par l’URL de votre site SharePoint Online. Cette commande demande également des informations d’identification et vous connecte au site SharePoint Online spécifié :
$SiteURL = "https://tenant-admin.sharepoint.com"
Connect-PnPOnline $SiteURL -Interactive
Les modules Microsoft SharePoint Online Services et PnP PowerShell sont de bonnes options pour les administrateurs qui souhaitent se connecter à SharePoint Online et le gérer via PowerShell. Chaque module offre des fonctionnalités différentes. Des mises à jour régulières et une communauté solide font de PnP PowerShell le module de gestion PowerShell préféré de nombreux administrateurs, mais le module officiel de Microsoft a également ses points forts, en particulier pour les tâches de gestion de site de base. Savoir comment utiliser chaque module permet d’obtenir la meilleure couverture possible.
Comment vérifier l’usage d’un site SharePoint ?
Pour commencer avec les détails de base sur l’utilisation du site, tels que l’espace de stockage utilisé et la date de modification du dernier contenu, vous pouvez utiliser la cmdlet Get-SPOSite :
$siteUrl = "https://m365x86127502.sharepoint.com/sites/ContosoNews"
$site = Get-SPOSite -Identity $siteUrl -Detailed
$siteInfo = @"
URL: $($site.Url)
Storage Used: $($site.StorageUsageCurrent) MB
Last Content Modified: $($site.LastContentModifiedDate)
"@
Write-Host $siteInfo
SharePoint Online a des limites de stockage, il est donc important de comprendre l’utilisation de l’espace de stockage de vos collections de sites afin d’éviter les erreurs ou de payer des frais plus élevés pour l’espace supplémentaire. Cette commande répertorie toutes les collections de sites avec leur utilisation actuelle de l’espace de stockage en mégaoctets :
Get-SPOSite -Limit All | `
Select-Object Url, StorageUsageCurrent | `
Format-Table -AutoSize
Les journaux d’audit (logs) de SharePoint Online révèlent des informations sur les activités des utilisateurs, l’accès aux documents et les opérations du système. Bien que le module Exchange Online PowerShell – également appelé module Exchange Online PowerShell V3 ou module EXO V3 – soit principalement destiné à la gestion d’Exchange Online, il peut également récupérer des informations sur les sites SharePoint Online par le biais des journaux d’audit, indiquant indirectement l’état du site. La cmdlet Search-UnifiedAuditLog du module EXO V3 permet d’accéder au journal d’audit unifié de Microsoft 365.
Tout d’abord, installez le module PowerShell Exchange Online si ce n’est pas déjà fait :
Install-Module -Name ExchangeOnlineManagement -Force
Import-Module -Name ExchangeOnlineManagement
Ensuite, utilisez vos informations d’identification pour vous connecter au service Exchange Online. Assurez-vous que le compte utilisé dispose des autorisations nécessaires pour accéder aux journaux d’audit :
Connect-ExchangeOnline `
-UserPrincipalName [email protected]
Après avoir établi la connexion, utilisez la cmdlet Search-UnifiedAuditLog pour récupérer les entrées du journal d’audit pour les activités SharePoint des 30 derniers jours :
$searchParams = @{
StartDate = (Get-Date).AddDays(-30)
EndDate = Get-Date
RecordType = "SharePoint"
}
Search-UnifiedAuditLog @searchParams | `
Select-Object Operations, AuditData | Format-Table
Comment surveiller l’engagement des utilisateurs ?
Comprendre l’engagement des utilisateurs sur les sites SharePoint Online, comme les pages vues, les téléchargements de fichiers et les interactions des utilisateurs, aide l’entreprise à optimiser l’interface utilisateur et à gérer le contenu plus efficacement.
Microsoft SharePoint Online Services ou tout autre module PowerShell standard pour SharePoint Online ne dispose pas de cmdlets pour surveiller les téléchargements de fichiers. Au lieu de cela, vous utilisez les journaux d’audit de SharePoint Online par l’intermédiaire du centre de sécurité et de conformité. Vous pouvez également utiliser la cmdlet Search-UnifiedAuditLog du module PowerShell Exchange Online pour surveiller ces activités.
Les commandes suivantes permettent de récupérer les téléchargements de fichiers dans SharePoint Online au cours des 30 derniers jours :
$searchParams = @{
StartDate = (Get-Date).AddDays(-90)
EndDate = Get-Date
RecordType = "SharePointFileOperation"
}
$auditLogs = Search-UnifiedAuditLog @searchParams
$fileDownloads = $auditLogs | `
Where-Object { $_.Operations -contains "FileDownloaded" }
$fileDownloads | `
Select-Object CreationDate, UserIds, Operations, AuditData | `
Format-Table
En analysant les interactions des utilisateurs, les téléchargements de fichiers et les pages consultées, l’administrateur peut partager les résultats avec les parties prenantes qui souhaitent connaître le niveau d’engagement des utilisateurs. Le script suivant utilise le module PowerShell PnP pour produire les activités d’accès aux fichiers :
$auditLogs = Get-PnPUnifiedAuditLog `
-ContentType "SharePoint"
$auditLogs | `
Where-Object { $_.Operation -contains "FileAccessed" } | `
Select-Object Operation, SiteUrl, SourceFileName, Workload | `
Format-Table
Comment auditer l’activité des utilisateurs ?
Les rapports d’activité des utilisateurs sont essentiels pour comprendre quels utilisateurs interagissent avec l’environnement SharePoint et comment. L’exemple suivant répertorie tous les utilisateurs d’un site particulier, à l’exception des administrateurs du site :
$siteUrl = "https://m365x86127502.sharepoint.com/sites/ContosoNews"
$siteUsageUsers = Get-SPOUser -Site $siteUrl
$siteUsageUsers | `
Where-Object {$_.IsSiteAdmin -eq $false} | `
Select-Object DisplayName, UserType | `
Format-Table -AutoSize
L’un ou l’autre des modules PowerShell peut renvoyer des mesures d’utilisation plus avancées, comme les pages vues et les visiteurs uniques. Le code PowerShell suivant filtre les journaux d’audit à la recherche d’événements relatifs aux pages vues et affiche les résultats dans un tableau :
$auditLogs = Get-PnPUnifiedAuditLog `
-ContentType "SharePoint"
$pageViewLogs = $auditLogs | `
Where-Object { $_.Operation -eq "PageViewed" } | `
Select-Object UserKey, Operation, Workload | `
Format-Table
$pageViewLogs
La surveillance des activités des fichiers et des dossiers permet aux administrateurs de s’assurer que l’entreprise respecte les exigences de conformité et de détecter les activités suspectes sur la plateforme SharePoint Online. Le code PowerShell suivant vérifie les modifications et les téléchargements de fichiers dans SharePoint au cours des 30 derniers jours et affiche les résultats :
$searchParams = @{
StartDate = (Get-Date).AddDays(-30)
EndDate = Get-Date
RecordType = "SharePointFileOperation"
Operations = "FileModified", "FileUploaded"
}
Search-UnifiedAuditLog @searchParams | `
Format-Table
Comment vérifier les changements de permissions des utilisateurs ?
L’utilisation de l’automatisation PowerShell pour suivre les changements de permissions des utilisateurs dans SharePoint Online permet d’éviter les problèmes de sécurité et de conformité. Bien que le centre d’administration de Microsoft 365 dispose d’un certain niveau de suivi, PowerShell peut révéler des informations plus complètes.
Le script suivant vérifie le journal d’audit unifié pour les changements de groupes et d’autorisations dans SharePoint Online :
$searchParams = @{
StartDate = (Get-Date).AddDays(-30)
EndDate = Get-Date
RecordType = "SharePoint"
Operations = "AddedToGroup",
"RemovedFromGroup", "UpdatedGroup", "SharePointGroupOperation"
}
$auditLogs = Search-UnifiedAuditLog @searchParams
$auditLogs | Select-Object UserIds, Operations, AuditData | `
Format-Table
Comment vérifier l’état de santé d’un site SharePoint Online ?
L’utilisation de PowerShell pour surveiller SharePoint Online offre un moyen rapide d’examiner les changements dans les domaines clés de la plateforme afin de s’assurer que les utilisateurs respectent les politiques et les règlements de l’entreprise.
L’exemple suivant utilise le module Microsoft SharePoint Online Services pour récupérer l’état d’une collection de sites spécifiée, indiquant son état de santé.
$site = Get-SPOSite -Identity $siteUrl -Detailed
Write-Host "Status: $($site.Status)"
Le script suivant utilise le journal d’audit de SharePoint Online pour indiquer le nombre d’opérations effectuées par un utilisateur. Ces opérations comprennent les activités liées aux modifications de fichiers et de dossiers, aux changements d’autorisations et à l’accès aux listes et aux éléments de liste :
$searchParams = @{
StartDate = (Get-Date).AddDays(-30)
EndDate = Get-Date
RecordType = "SharePoint"
}
$auditLogs = Search-UnifiedAuditLog @searchParams
$userOperationsCount = $auditLogs | `
Group-Object -Property UserIds -NoElement |
Select-Object @{Name="User";Expression={($_.Name -join ', ')}}, @{Name="OperationsCount";Expression={$_.Count}}
$userOperationsCount | Format-Table -AutoSize