Exporter le rapport d'utilisation de OneDrive dans Microsoft 365
Les utilisateurs peuvent occuper beaucoup d'espace dans leur stockage OneDrive. Avec un rapport sur la taille OneDrive, vous pouvez voir quels utilisateurs ont presque atteint la limite. Vous pouvez ensuite mettre à niveau le stockage OneDrive ou leur demander de le nettoyer. Dans cet article, vous apprendrez comment exporter le rapport d'utilisation de OneDrive dans Microsoft 365.
Obtenir la taille utilisée du stockage OneDrive dans Microsoft 365
Pour obtenir la taille de stockage OneDrive utilisée par un utilisateur dans Microsoft 365, suivez les étapes ci-dessous :
- Connectez-vous au centre d'administration Microsoft 365
- Cliquez sur Utilisateurs > Utilisateurs actifs
- Cliquez sur l'utilisateur dans la liste
- Cliquez sur OneDrive
- Consultez la section Stockage utilisé
L’avantage est que les données utilisées sur le stockage OneDrive sont renseignées en quelques minutes.
Exporter le rapport d'utilisation de OneDrive dans le centre d'administration Microsoft 365
Pour exporter le rapport d'utilisation de OneDrive pour tous les utilisateurs dans Microsoft 365, suivez les étapes ci-dessous :
- Connectez-vous au centre d'administration Microsoft 365
- Cliquez sur Paramètres > Paramètres de l'organisation > Services.
- Cliquez sur Rapports
- Décochez Afficher les noms d'utilisateurs, de groupes et de sites masqués dans tous les rapports
- Cliquez sur Enregistrer
- Cliquez sur Rapports > Utilisation.
- Cliquez sur OneDrive et faites défiler vers le bas.
- Cliquez sur Exporter pour télécharger le fichier CSV du rapport d'utilisation de OneDrive.
L’inconvénient de ce rapport est que les données ne sont pas immédiatement mises à jour. Les rapports sont disponibles dans les 48 heures.
Exporter le rapport d'utilisation de OneDrive avec le script PowerShell
Le script PowerShell Get-OneDriveSizeReport.ps1 obtiendra la taille OneDrive pour tous les utilisateurs et affichera les informations ci-dessous :
- Propriétaire
- UPN
- ID du site
- EstSupprimé
- Dernière activité
- Nombre de fichiers
- Nombre de fichiers actifs
- QuotaGB
- UtiliséGB
- Pourcentage utilisé
- Ville
- Pays
- Département
- Titre d'emploi
Remarque : Le script vérifie si les données utilisateur masquées dans les rapports sont activées dans l'organisation. Si tel est le cas, il le désactive temporairement et, une fois le rapport terminé, il le réactive.
Pour exporter le rapport d'utilisation de OneDrive pour tous les utilisateurs avec PowerShell, suivez les étapes ci-dessous :
Étape 1. Installez Microsoft Graph PowerShell
Exécutez Windows PowerShell en tant qu'administrateur et installez Microsoft Graph PowerShell.
Install-Module Microsoft.Graph -ForceInstall-Module Microsoft.Graph.Beta -AllowClobber -ForceImportant : installez toujours les modules Microsoft Graph PowerShell et Microsoft Graph Beta PowerShell. En effet, certaines applets de commande ne sont pas encore disponibles dans la version finale et ne fonctionneront pas. Mettez à jour les deux modules vers la dernière version avant d'exécuter une applet de commande ou un script pour éviter les erreurs et les résultats incorrects.
Étape 2. Téléchargez le script PowerShell Get-OneDriveSizeReport
Créez deux dossiers sur le lecteur (C:) :
- Scripts
- Température
Téléchargez et placez le script PowerShell Get-OneDriveSizeReport.ps1 dans le dossier C:\Scripts. Le script exportera toutes les tailles OneDrive des utilisateurs vers un rapport dans le dossier C:\Temp.
Assurez-vous que le fichier est débloqué pour éviter les erreurs lors de l'exécution du script. Pour en savoir plus, consultez l'article Erreur non signée numériquement lors de l'exécution du script PowerShell.
Une autre option consiste à copier et coller le code ci-dessous dans le Bloc-notes. Donnez-lui le nom Get-OneDriveSizeReport.ps1 et placez-le dans le dossier C:\Scripts.
<#
.SYNOPSIS
Get-OneDriveSizeReport.ps1
.DESCRIPTION
Export OneDrive storage usage in Microsoft 365 to CSV file with PowerShell.
.LINK
www.alitajran.com/export-onedrive-usage-report/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 08/10/2024 - Initial version
#>
# Connect to Microsoft Graph with necessary permissions
Connect-MgGraph -NoWelcome -Scopes "User.Read.All", "Reports.Read.All", "ReportSettings.ReadWrite.All"
# Define file paths
$CSVOutputFile = "C:\temp\OneDriveSizeReport.csv"
$TempExportFile = "C:\temp\TempExportFile.csv"
# Remove the temporary export file if it exists
if (Test-Path $TempExportFile) {
Remove-Item $TempExportFile
}
# Check if tenant reports have concealed user data, and adjust settings if necessary
if ((Get-MgBetaAdminReportSetting).DisplayConcealedNames -eq $true) {
$Parameters = @{ displayConcealedNames = $false }
Write-Host "Unhiding concealed report data to retrieve full user information..." -ForegroundColor Cyan
Update-MgBetaAdminReportSetting -BodyParameter $Parameters
$ConcealedFlag = $true
}
else {
$ConcealedFlag = $false
Write-Host "User data is already fully visible in the reports." -ForegroundColor Cyan
}
# Retrieve detailed user account information
Write-Host "Fetching user account details from Microsoft Graph..." -ForegroundColor Cyan
# Define user properties to be retrieved
$Properties = 'Id', 'displayName', 'userPrincipalName', 'city', 'country', 'department', 'jobTitle', 'officeLocation'
# Define parameters for retrieving users with assigned licenses
$userParams = @{
All = $true
Filter = "assignedLicenses/`$count ne 0 and userType eq 'Member'"
ConsistencyLevel = 'Eventual'
CountVariable = 'UserCount'
Sort = 'displayName'
}
# Get user account information and select the desired properties
$Users = Get-MgUser @UserParams -Property $Properties | Select-Object -Property $Properties
# Create a hashtable to map UPNs (User Principal Names) to user details
$UserHash = @{}
foreach ($User in $Users) {
$UserHash[$User.userPrincipalName] = $User
}
# Retrieve OneDrive for Business site usage details for the last 30 days and export to a temporary CSV file
Write-Host "Retrieving OneDrive for Business site usage details..." -ForegroundColor Cyan
Get-MgReportOneDriveUsageAccountDetail -Period D30 -Outfile $TempExportFile
# Import the data from the temporary CSV file
$ODFBSites = Import-CSV $TempExportFile | Sort-Object 'User display name'
if (-not $ODFBSites) {
Write-Host "No OneDrive sites found." -ForegroundColor Yellow
return
}
# Calculate total storage used by all OneDrive for Business accounts
$TotalODFBGBUsed = [Math]::Round(($ODFBSites.'Storage Used (Byte)' | Measure-Object -Sum).Sum / 1GB, 2)
# Initialize a list to store report data
$Report = [System.Collections.Generic.List[PSCustomObject]]::new()
# Populate the report with detailed information for each OneDrive site
foreach ($Site in $ODFBSites) {
$UserData = $UserHash[$Site.'Owner Principal name']
$ReportLine = [PSCustomObject]@{
Owner = $Site.'Owner display name'
UserPrincipalName = $Site.'Owner Principal name'
SiteId = $Site.'Site Id'
IsDeleted = $Site.'Is Deleted'
LastActivityDate = $Site.'Last Activity Date'
FileCount = $Site.'File Count'
ActiveFileCount = $Site.'Active File Count'
QuotaGB = [Math]::Round($Site.'Storage Allocated (Byte)' / 1GB, 2)
UsedGB = [Math]::Round($Site.'Storage Used (Byte)' / 1GB, 2)
PercentUsed = [Math]::Round($Site.'Storage Used (Byte)' / $Site.'Storage Allocated (Byte)' * 100, 2)
City = $UserData.city
Country = $UserData.country
Department = $UserData.department
JobTitle = $UserData.jobTitle
}
$Report.Add($ReportLine)
}
# Export the report to a CSV file and display the data in a grid view
$Report | Sort-Object UsedGB -Descending | Export-CSV -NoTypeInformation -Encoding utf8 $CSVOutputFile
$Report | Sort-Object UsedGB -Descending | Out-GridView -Title OneDriveUsageReport
Write-Host ("Current OneDrive for Business storage consumption is {0} GB. Report saved to {1}" -f $TotalODFBGBUsed, $CSVOutputFile) -ForegroundColor Cyan
# Reset tenant report data concealment setting if it was modified earlier
if ($ConcealedFlag -eq $true) {
Write-Host "Re-enabling data concealment in tenant reports..." -ForegroundColor Cyan
$Parameters = @{ displayConcealedNames = $true }
Update-MgBetaAdminReportSetting -BodyParameter $Parameters
}
# Clean up the temporary export file
if (Test-Path $TempExportFile) {
Remove-Item $TempExportFile
Write-Host "Temporary export file removed." -ForegroundColor Cyan
}- Ligne 24/25 : Modifier le chemin du fichier CSV
Étape 3. Exécutez le script PowerShell Get-OneDriveSizeReport
Exécutez la commande ci-dessous pour exécuter le script PowerShell Get-OneDriveSizeReport.ps1.
c:\scripts\.\Get-OneDriveSizeReport.ps1La sortie ci-dessous apparaît.
Unhiding concealed report data to retrieve full user information...
Fetching user account details from Microsoft Graph...
Retrieving OneDrive for Business site usage details...
Current OneDrive for Business storage consumption is 124,19 GB. Report saved to C:\temp\OneDriveSizeReport.csv
Re-enabling data concealment in tenant reports...
Temporary export file removed.La sortie du rapport est envoyée à un tableau interactif dans une fenêtre séparée (Out-GridView).
Étape 4. Vérifiez le fichier CSV du rapport d'utilisation de OneDrive
Le script PowerShell Get-OneDriveSizeReport.ps1 exporte toutes les tailles OneDrive des utilisateurs de Microsoft 365 vers un fichier CSV.
Recherchez le fichier OneDriveSizeReport.csv dans le chemin C:\temp.
Ouvrez le fichier CSV avec votre application préférée. Dans notre exemple, il s’agit de Microsoft Excel.
C'est ça!
Remarque : À partir de janvier 2025, Microsoft facturera aux organisations le stockage des comptes OneDrive sans licence. Un excellent moyen de savoir quels comptes sont sans licence consiste à obtenir un rapport sur les comptes d'utilisateurs OneDrive sans licence.
Lire la suite : Configurer les fichiers de modèles d'administration OneDrive (ADMX/ADML) »
Conclusion
Vous avez appris à exporter le rapport d'utilisation de OneDrive dans Microsoft 365. Si vous souhaitez vérifier instantanément les données de taille OneDrive d'un utilisateur, recherchez l'utilisateur dans le Centre d'administration Microsoft 365. Pour obtenir un rapport plus détaillé, utilisez la section rapport dans le Centre d’administration Microsoft 365 ou utilisez PowerShell. L’inconvénient est qu’il faut attendre 48 heures pour que les données soient disponibles.
Avez-vous apprécié cet article ? Vous aimerez peut-être également les recommandations de sécurité Microsoft 365 avec le script PowerShell. N’oubliez pas de nous suivre et de partager cet article.






