SharePoint 解決方案:如何獲取Library或者List下的Item數量

51CTO 博客地址:https://blog.51cto.com/13969817web

博客園博客地址:https://www.cnblogs.com/bxapolloshell

今天給你們分享一下如何使用PowerShell CSOM腳本爲特定的Library或者List獲取item count,包括其下全部的文件夾中的item,這樣有利於作數據分析和統計,好比組織結構變動,須要將數據作遷移,那麼就能夠經過該種方法對比遷移前的數據量和遷移後的目的端item count,以確保數據遷移先後的數量是一致的。函數

獲取Item count方案有不少,好比PnP Powershell等等,本文將爲你們介紹的是PowerShell CSOM腳本的解決方案。網站

具體執行分如下3個步驟:.net

  • 加載SharePoint CSOM Assemblies
  • 處理變量,確保鏈接SharePoint Online
  • 自定義函數從特定的網站URL的list中獲取Item數量

加載SharePoint CSOM Assemblies的命令:3d

•	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"

但因爲我環境的.net是4.0的,默認的狀況下,禁用從遠程位置加載的程序集中執行代碼的功能,因此須要使用[System.Reflection.Assembly]::LoadFrom()來加載Microsoft.SharePoint.Client.dll",以下所示:blog

 

說明:加載這兩個dll文件,須要在部署SharePoint Server端執行,不然默認狀況下物理路徑是沒有該文件的。部署

處理變量,確保鏈接SharePoint Onlineget

$SiteUrl = "https://mvptrainingcn.sharepoint.com/sites/Demo2"
$ListName="TrainingDocument"

 

說明:須要輸入Microsoft 365 Global Admin的帳戶和密碼,以下所示:博客

$UserName="XXXXXX@MVPTrainingCN.onmicrosoft.com"
$Password ="XXXXXX"

 

自定義函數從特定的網站URL的list中獲取Item數量

#Setup Credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force))
#Set up the context
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$Context.Credentials = $credentials
#Get the List
$List = $Context.web.Lists.GetByTitle($ListName)
#sharepoint online get list items powershell
$ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
$Context.Load($ListItems)
$Context.ExecuteQuery()      
write-host "Total Number of List Items found:"$ListItems.Count

 

 能夠看到獲取到的Item數量是2,與SharePoint Online的實際狀況吻合,以下圖所示:

 

 以上是本次分享的數據統計方法,但願對你們有所幫助,持續關注我,後續分享更多使用小技巧,謝謝閱讀。

相關文章
相關標籤/搜索