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的命令: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的實際狀況吻合,以下圖所示:
以上是本次分享的數據統計方法,但願對你們有所幫助,持續關注我,後續分享更多使用小技巧,謝謝閱讀。