SharePoint Online: PowerShell kullanarak Klasör Boyutunu Görüntüleme
Gereksinim: SharePoint Online'da bir Klasör Boyutu edinin.
SharePoint Online'da Klasör Boyutu Nasıl Kontrol Edilir?
SharePoint içeriğini yönetmek, özellikle klasörlerinizin boyutunu bulmanız gerektiğinde göz korkutucu bir görev olabilir. Sitenizde ne kadar alan kaldığını belirlemek ve gelecekteki veri depolama alanı tahsisini belirlemek için klasörünüzün toplam boyutunu bilmeniz gerekir. Bu blog yazısında, SharePoint Online'daki bir klasörün boyutunu site ayarları sayfasından ve PowerShell betiğiyle nasıl kontrol edeceğinizi göstereceğim.
SharePoint Online'da klasör boyutu nasıl kontrol edilir? SharePoint Online'da klasör boyutunu görüntülemek için şu adrese gidin:
- Siteye gidin >> Ayarlar dişlisine tıklayın >> Site Ayarları >> “Site Koleksiyonu Yönetimi” altındaki “Depolama Metrikleri” bağlantısına tıklayın.
Depolama ölçümleri sayfasında, hedef klasörün depolandığı konuma gitmek için belge kitaplığına tıklayın.
Depolama ölçümleri sayfası, her klasörün ve dosyanın boyutunu gösterir (sürüm geçmişi boyutu dahil). Depolama ölçümleri sayfası verilerinin gerçek zamanlı veriler olmadığını belirtmekte fayda var! Bir arka plan zamanlayıcı işinin çalıştırılması ve bu verileri doldurması biraz zaman alır.
SharePoint Online: PowerShell'i kullanarak Klasör Boyutunu Alın
SharePoint kitaplıklarında depolanan veri miktarı arttıkça klasörlerin ve kitaplıkların boyutunu izlemek ve yönetmek önemlidir. Bunu yapmanın bir yolu, görevleri otomatikleştirmek ve SharePoint Online hakkında bilgi almak için güçlü bir komut dosyası oluşturma ortamı sağlayan PowerShell'i kullanmaktır.
SharePoint Online'da klasör boyutu nasıl bulunur? PowerShell betiğini kullanarak bir SharePoint Online sitesindeki tüm klasörlerin klasör boyutunu kontrol edelim:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Function to Get the size of a Folder in SharePoint Online
Function Get-SPOFolderSize([Microsoft.SharePoint.Client.Folder]$Folder)
{
Try
{
#Get all Files and Subfolders from the folder
$Ctx.Load($Folder.Files)
$Ctx.Load($Folder.Folders)
$Ctx.ExecuteQuery()
$FolderSize = 0
ForEach($File in $Folder.Files | Where {-Not($_.Name.EndsWith(".aspx"))})
{
#Get File versions
$Ctx.Load($File.Versions)
$Ctx.ExecuteQuery()
$VersionSize=0
If($File.Versions.Count -ge 1)
{
#Calculate Version Size
$VersionSize = $File.Versions | Measure-Object -Property Size -Sum | Select-Object -expand Sum
}
$FileSize = [Math]::Round((($File.Length) + $VersionSize)/1KB, 2)
If($FileSize -gt 0)
{
Write-host "`tSize of the File '$($File.Name)' "$FileSize
}
#Get File Size
$FolderSize += $FileSize
}
If($FolderSize -gt 0)
{
Write-host -f Yellow "Total Size of the Folder '$($Folder.ServerRelativeUrl)' (KB): " -NoNewline
$FolderSize= [Math]::Round($FolderSize/1KB, 2)
Write-host $FolderSize
}
#Process all Sub Folders
ForEach($Folder in $Folder.Folders | Where {-Not($_.Name.StartsWith("_") -or $_.Name -eq "Forms")})
{
#Call the function recursively
Get-SPOFolderSize $Folder
}
}
Catch [System.Exception]
{
Write-Host -f Red "Error:"$_.Exception.Message
}
}
#parameters
$SiteURL = "https://Crescent.sharepoint.com"
#Get credentials to connect to SharePoint Online Admin Center
$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 Web
$Web = $Ctx.Web
$RootFolder = $Web.RootFolder
$Ctx.Load($RootFolder)
$Ctx.ExecuteQuery()
#Call the function to get Subsite size
Get-SPOFolderSize -Folder $RootFolder
PnP PowerShell kullanılarak SharePoint Online'da klasör boyutu nasıl görüntülenir?
Her dosyanın boyutunu ve sürümlerini özetlemek yerine, klasör boyutunu (Dosyalar + Sürümler) doğrudan özelliğinden alabiliriz: SMTotalSize!
#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$FolderSiteRelativeURL = "/Branding/Active"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Get the folder
$Folder = Get-PnPFolder -Url $FolderSiteRelativeURL -Includes ListItemAllFields
#Get the total Size of the folder - with versions
Write-host "Size of the Folder:" $([Math]::Round(($Folder.ListItemAllFields.FieldValues.SMTotalSize.LookupId/1KB),2))
Bir belge kitaplığındaki tüm klasörlerin boyutlarını bulmaya ne dersiniz?
#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$ListName = "Branding"
$CSVFile = "C:\Temp\FolderSize.csv"
Try {
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Get all folders from the document library
$Folders = Get-PnPListItem -List $ListName -PageSize 2000 | Where { $_.FileSystemObjectType -eq "Folder" }
#Calculate Folder Size from files
$FolderSizeData = @()
$Folders | ForEach-Object {
#Extract Folder Size data
$FolderSizeData += New-Object PSObject -Property ([Ordered]@{
"Folder Name" = $_.FieldValues.FileLeafRef
"URL" = $_.FieldValues.FileRef
"Size" = $_.FieldValues.SMTotalSize.LookupId
})
}
$FolderSizeData | Format-Table
$FolderSizeData | Export-csv $CSVFile -NoTypeInformation
#Calculate the Total Size of Folders
$FolderSize = [Math]::Round((($FolderSizeData | Measure-Object -Property "Size" -Sum | Select-Object -expand Sum)/1KB),2)
Write-host -f Green ("Total Size: {0}" -f $FolderSize)
}
Catch {
Write-Host -f Red "Error:"$_.Exception.Message
}
Çözüm:
Bu öğreticide, depolama ölçümleri sayfasını ve PowerShell'i kullanarak SharePoint Online'da bir klasörün boyutunun nasıl alınacağını tartıştık. SharePoint İstemci Tarafı Nesne Modeli'ni (CSOM) ve bir PnP PowerShell betiğini kullanarak, bir klasörün ve alt klasörlerinin boyutunu almayı başardık ve bu da SharePoint Online ortamının depolama kullanımını yönetmek için değerli bilgiler sağladı. Bu yöntem daha büyük bir otomasyon sürecinin parçası olarak kullanılabilir ve SharePoint ortamınızı düzenli ve optimize edilmiş halde tutmanıza yardımcı olur.
