在 Microsoft 365 中导出 OneDrive 使用情况报告
用户可能会占用 OneDrive 存储中的大量空间。通过 OneDrive 大小报告,您可以查看哪些用户几乎达到了限制。然后,您可以升级 OneDrive 存储或告诉他们清理它。在本文中,您将了解如何在 Microsoft 365 中导出 OneDrive 使用情况报告。
若要获取 Microsoft 365 中用户的 OneDrive 存储已用大小,请按照以下步骤操作:
- 登录到Microsoft 365 管理中心
- 点击用户 > 活跃用户
- 单击用户从列表中
- 点击云端硬盘
- 检查使用的存储空间部分
优点是 OneDrive 存储使用的数据会在几分钟内填充。
在 Microsoft 365 管理中心导出 OneDrive 使用情况报告
要导出 Microsoft 365 中所有用户的 OneDrive 使用情况报告,请按照以下步骤操作:
- 登录到Microsoft 365 管理中心
- 点击设置 > 组织设置 > 服务
- 点击报告
- 取消选中在所有报告中显示隐藏的用户、组和站点名称
- 点击节省
- 点击报告 > 使用情况
- 点击云端硬盘并向下滚动到底部
- 点击出口下载 OneDrive 使用情况报告 CSV 文件
该报告的缺点是数据不是立即更新的。报告将在 48 小时内提供。
使用 PowerShell 脚本导出 OneDrive 使用情况报告
Get-OneDriveSizeReport.ps1 PowerShell 脚本将获取所有用户的 OneDrive 大小并输出以下信息:
- 所有者
- 统一网络
- 站点ID
- 已删除
- 上次活动
- 文件计数
- 活动文件计数
- 配额GB
- 二手GB
- 使用百分比
- 城市
- 国家
- 部门
- 职称
笔记:该脚本检查组织中是否启用了报告中隐藏的用户数据。如果是这样,它会暂时禁用它,报告完成后,它会再次启用它。
要使用 PowerShell 导出所有用户的 OneDrive 使用情况报告,请按照以下步骤操作:
步骤 1. 安装 Microsoft Graph PowerShell
以管理员身份运行 Windows PowerShell 并安装 Microsoft Graph PowerShell。
Install-Module Microsoft.Graph -Force
重要的:在运行 cmdlet 或脚本之前,请务必更新到最新的 Microsoft Graph PowerShell 模块版本,以防止出现错误和不正确的结果。
步骤 2. 下载 Get-OneDriveSizeReport PowerShell 脚本
上创建两个文件夹(中:)驾驶:
- 脚本
- 温度
下载 Get-OneDriveSizeReport.ps1 PowerShell 脚本并将其放置在C:脚本文件夹。该脚本会将所有用户 OneDrive 大小导出到以下位置的报告中:C:温度文件夹。
确保文件未被阻止,以防止运行脚本时出现错误。请阅读文章运行 PowerShell 脚本时出现未数字签名错误来了解更多信息。
另一种选择是将以下代码复制并粘贴到记事本中。给它起个名字获取 OneDriveSizeReport.ps1并将其放置在C:脚本文件夹。
<#
.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:tempOneDriveSizeReport.csv"
$TempExportFile = "C:tempTempExportFile.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-MgAdminReportSetting).DisplayConcealedNames -eq $true) {
$Parameters = @{ displayConcealedNames = $false }
Write-Host "Unhiding concealed report data to retrieve full user information..." -ForegroundColor Cyan
Update-MgAdminReportSetting -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[Object]]::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 = [int]$Site.'File Count'
ActiveFileCount = [int]$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-MgAdminReportSetting -BodyParameter $Parameters
}
# Clean up the temporary export file
if (Test-Path $TempExportFile) {
Remove-Item $TempExportFile
Write-Host "Temporary export file removed." -ForegroundColor Cyan
}
- 第 24/25 行:编辑 CSV 文件路径
步骤 3. 运行 Get-OneDriveSizeReport PowerShell 脚本
运行以下命令来运行获取 OneDriveSizeReport.ps1PowerShell 脚本。
c:scripts.Get-OneDriveSizeReport.ps1
将出现以下输出。
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:tempOneDriveSizeReport.csv
Re-enabling data concealment in tenant reports...
Temporary export file removed.
报告输出将发送到单独窗口 (Out-GridView) 中的交互式表格。
步骤 4. 检查 OneDrive 使用情况报告 CSV 文件
Get-OneDriveSizeReport.ps1 PowerShell 脚本将所有 Microsoft 365 用户 OneDrive 大小导出到 CSV 文件。
找到文件OneDriveSizeReport.csv在路径中C:温度。
使用您喜欢的应用程序打开 CSV 文件。在我们的示例中,它是 Microsoft Excel。
另请阅读:导出 Microsoft 365 用户上次密码更改日期和时间
就是这样!
笔记:从 2025 年 1 月开始,微软将向组织收取未经许可的 OneDrive 帐户存储费用。了解哪些帐户未经许可的一个好方法是获取未经许可的 OneDrive 用户帐户报告。
结论
您了解了如何在 Microsoft 365 中导出 OneDrive 使用情况报告。如果您想立即检查用户的 OneDrive 大小数据,请在 Microsoft 365 管理中心查找该用户。若要获取包含更多详细信息的报告,请使用 Microsoft 365 管理中心中的报告部分或使用 PowerShell。缺点是需要等待48小时才能获得数据。
您喜欢这篇文章吗?您可能还喜欢使用 PowerShell 脚本的 Microsoft 365 安全建议。不要忘记关注我们并分享这篇文章。
