首页 > 其他分享 >Microsoft 365 开发:如何获取单个用户或者多个用户OneDrive 的存储大小

Microsoft 365 开发:如何获取单个用户或者多个用户OneDrive 的存储大小

时间:2023-01-10 18:31:55浏览次数:43  
标签:Stats SharePoint OneDrive 用户 Owner 365

Blog链接:https://blog.51cto.com/13969817

无论我们做Office 365 数据备份或者数据迁移,作为IT Admin我们都需要提前了解Office 365 每个组件所使用的存储大小,比如我们需要针对重要的用户做数据备份或者因为审计需求,希望将部分用户的数据搬迁到其他地方做审计,这种情况下,我们需要评估存储介质大小以及数据迁移大小的预算评估,那么我们就需要导出用户相关数据,比如OneDrive的存储大小情况。

本文我将向大家分享如何在Powershell中获取Office 365中用户的OneDrive使用情况,以下是所需的最小权限列表:

• 全局管理员权限

• SharePoint管理员权限,我们都知道,OneDrive本质上是SharePoint Online特殊类型的网站,所以如果通过Powershell获取容量,至少需要SharePoint管理员权限才能检查使用情况。

• 用户必须获得OneDrive许可证(通常使用E3许可证)

• 导入Microsoft.Online.SharePoint.PowerShell 模块

Microsoft 365 开发:如何获取单个用户或者多个用户OneDrive 的存储大小_OneDrive

然后我们可以执行命令获取单个用户的OneDrive Storage,如下所示:

Get-SPOSite -Identity $URL | select Owner, StorageUsageCurrent, StorageQuota, Status  

Microsoft 365 开发:如何获取单个用户或者多个用户OneDrive 的存储大小_OneDrive_02

如果大家想获取多个用户的OneDrive Storage的话,可以参照下面脚本:

Function Get-OneDriveUsage {
[CmdletBinding()]
param(
[Parameter(
Mandatory=$false,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
Position=0)]
[string[]] $AccountName = $env:USERNAME
)
BEGIN {
$TenantName = 'XXXX'
$DomainName = 'XXXX'
}
PROCESS {
foreach ($User in $AccountName) {
try {
$URL = "https://$($TenantName)-my.sharepoint.com/personal/$($User)_$($DomainName)_onmicrosoft_com"
$Stats = Get-SPOSite -Identity $URL | select Owner, StorageUsageCurrent, StorageQuota, Status
[PSCustomObject]@{
Owner = $Stats.Owner
CurrentUsageGB = "{0:F3}" -f ($Stats.StorageUsageCurrent / 1024) -as [decimal]
TotalStorageGB = "{0:F0}" -f ($Stats.StorageQuota / 1024) -as [int]
Status = $Stats.Status
}

} catch {
Write-Error $_.Exception.Message

}
}
}

END {}
}

谢谢大家的阅读,若执行过程中遇到问题,欢迎线下讨论

标签:Stats,SharePoint,OneDrive,用户,Owner,365
From: https://blog.51cto.com/u_13969817/6000524

相关文章