当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:使用 PowerShell 获取文档库大小

作者:精品下载站 日期:2024-12-14 15:02:34 浏览:16 分类:玩电脑

SharePoint Online:使用 PowerShell 获取文档库大小


要求:获取 SharePoint Online 文档库的大小。

[玩转系统] SharePoint Online:使用 PowerShell 获取文档库大小

如何检查SharePoint Online文档库大小?

您是否正在寻找一种方法来快速找出 SharePoint Online 中文档库的大小?随着文档库的增长和发展,监控其大小以确保它们有效且高效地使用存储资源至关重要。在本文中,我们将探讨如何确定 SharePoint Online 中文档库的大小,包括查看库总大小以及其中每个文件夹和文件的详细信息的分步指南。我们还将了解如何使用 PowerShell 获取文档库的大小。

要获取文档库大小,请执行以下操作:

  1. 登录到您的 SharePoint Online 站点 >> 单击“设置”>>“站点设置”。
  2. 单击“网站集管理”下的“存储指标”。
  3. 存储指标页面在“总大小”列下显示网站上每个文档库的大小。

    [玩转系统] SharePoint Online:使用 PowerShell 获取文档库大小

如果深入查看,您将看到文档库的总大小以及库中每个文件夹和文件的大小细目。

请注意,SharePoint Online 中显示的大小可能不是文件系统上库的确切大小,因为 SharePoint Online 使用各种技术(例如压缩和版本控制)来优化其数据存储。但是,SharePoint Online 中显示的大小可以很好地估计文档库的存储空间。

您还可以从 SharePoint Designer 和资源管理器视图中的文档库属性获取文档库的大小。

PowerShell 在 SharePoint Online 中获取列表或文档库大小:

使用此 PowerShell 脚本获取 SharePoint Online 中的库大小:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
   
#Function to Get the size of a List or Library in SharePoint Online
Function Get-SPOListSize($SiteURL, $ListName)
{ 
     Try
     {
        #Get credentials to connect to SharePoint Online
        $Cred = Get-Credential
 
        #Set up the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
     
        #get the list
        $List = $Ctx.Web.Lists.GetByTitle($ListName)
        $Ctx.Load($List)
        $Ctx.ExecuteQuery()

        #Query to Get all List Items from all folders - exclude Folder objects
        $Query = New-Object Microsoft.SharePoint.Client.CamlQuery
        $Query.ViewXml = "<View Scope='RecursiveAll'><Query><OrderBy><FieldRef Name='ID' Ascending='TRUE'/></OrderBy></Query><RowLimit Paged='TRUE'>2000</RowLimit></View>" 
        $i=1;$TotalSize = 0
        Do {
            #Get items from the list in batches
            $ListItems = $List.GetItems($Query)
            $Ctx.Load($ListItems)
            $Ctx.ExecuteQuery()
            $Query.ListItemCollectionPosition = $ListItems.ListItemCollectionPosition

            ForEach($ListItem in ($ListItems| Where {$_.FileSystemObjectType -eq "File"}))
            {
                #Get the File
                $File = $ListItem.File
                $Ctx.Load($File)
                $Ctx.Load($File.Versions)
                $Ctx.ExecuteQuery()
                Write-host -f Yellow "Size of '$($File.Name)' Item ($i of $($List.ItemCount)) - " -NoNewline
 
                $FileSize =0; $VersionSize = 0
                If($File.Versions.Count -ge 1)
                {
                    $VersionSize = $File.Versions | Measure-Object -Property Size -Sum | Select-Object -expand Sum
                }
                $FileSize =  $ListItem.File.Length  + $VersionSize
                Write-host "$($ListItem.File.Length) + $VersionSize :" $FileSize
                $TotalSize += $FileSize
                $i++
                #Clear
            }
        } While ($Query.ListItemCollectionPosition -ne $null)
        Return [Math]::Round($TotalSize/1MB, 2)
    }
    Catch [System.Exception]
    {
        Write-Host -f Red "Error:"$_.Exception.Message
    }
}
   
#parameters
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$ListName="Branding"

#Call the function to get document library size
$LibrarySize = Get-SPOListSize -SiteURL $SiteURL -ListName $ListName
Write-host -f Green "`nToal Size of the list/library: $LibrarySize MB"

如果您需要知道您的库占用了多少存储空间,这会很有用。

PnP PowerShell 获取文档库大小

我们还可以使用 PnP PowerShell 获取文档库的大小。


#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$LibraryName = "Documents"
 
#Connect to SharePoint Online site
Connect-PnPOnline -Url $SiteURL -Interactive

$FileData = @()
#Iterate through all files
Get-PnPListItem -List $LibraryName -PageSize 500 | Where {$_.FieldValues.FileLeafRef -like "*.*"} | ForEach-Object {
    Write-host "Getting Size of the File:"$_.FieldValues.FileRef -NoNewline
    #Get FileSize & version Size
    $FileSizeinKB = [Math]::Round(($_.FieldValues.File_x0020_Size/1KB),2)
    $File = Get-PnPProperty -ClientObject $_ -Property File
    $Versions = Get-PnPProperty -ClientObject $File -Property Versions
    $VersionSize = $Versions | Measure-Object -Property Size -Sum | Select-Object -expand Sum
    $VersionSizeinKB = [Math]::Round(($VersionSize/1KB),2)
    $TotalFileSizeKB = [Math]::Round(($FileSizeinKB + $VersionSizeinKB),2)
    Write-host `t $TotalFileSizeKB "KB" -f Yellow

    #extract File Size data
    $FileData+=New-Object PSObject -Property  ([Ordered]@{
        "File Name"  = $_.FieldValues.FileLeafRef
        "File URL" = $_.FieldValues.FileRef
        "File Size (KB)"  = $FileSizeinKB
        "Version Size (KB)"   = $VersionSizeinKB
        "Total File Size (KB)" = $TotalFileSizeKB
    })
}
$FileData | Format-table 
#Calculate the Total Size of the document library
$LibrarySize = [Math]::Round((($FileData | Measure-Object -Property "Total File Size (KB)" -Sum | Select-Object -expand Sum)/1KB),2)
Write-host -f Green "Total Library Size (MB):" $LibrarySize

脚本输出:

[玩转系统] SharePoint Online:使用 PowerShell 获取文档库大小

结论

总之,确定 SharePoint Online 中文档库的大小是一个简单的过程。通过执行上述步骤,您可以轻松查看库的总大小,并详细了解其中每个文件夹和文件的大小。此信息有助于监控文档库的增长并确保它们不会超出其存储配额。此外,您可以使用 PowerShell 了解文档库的大小,规划未来的存储需求,并确保您有足够的存储容量来满足组织的需求。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯