51CTO 博客地址:https://blog.51cto.com/13969817
博客園博客地址:https://www.cnblogs.com/bxapollo
今天給大家分享一下如何使用PowerShell CSOM腳本為特定的Library或者List獲取item count,包括其下所有的檔案夾中的item,這樣有利于做資料分析和統計,比如組織結構變更,需要將資料做遷移,那么就可以通過該種方法對比遷移前的資料量和遷移后的目的端item count,以確保資料遷移前后的數量是一致的,
獲取Item count方案有很多,比如PnP Powershell等等,本文將為大家介紹的是PowerShell CSOM腳本的解決方案,
具體執行分以下3個步驟:
- 加載SharePoint CSOM Assemblies
- 處理變數,確保連接SharePoint Online
- 自定義函式從特定的網站URL的list中獲取Item數量
加載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"
但由于我環境的.net是4.0的,默認的情況下,禁用從遠程位置加載的程式集中執行代碼的功能,所以需要使用[System.Reflection.Assembly]::LoadFrom()來加載Microsoft.SharePoint.Client.dll",如下所示:

說明:加載這兩個dll檔案,需要在部署SharePoint Server端執行,否則默認情況下物理路徑是沒有該檔案的,
處理變數,確保連接SharePoint Online
$SiteUrl = "https://mvptrainingcn.sharepoint.com/sites/Demo2" $ListName="TrainingDocument"

說明:需要輸入Microsoft 365 Global Admin的賬戶和密碼,如下所示:
$UserName="[email protected]" $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的實際情況吻合,如下圖所示:

以上是本次分享的資料統計方法,希望對大家有所幫助,持續關注我,后續分享更多使用小技巧,謝謝閱讀,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249384.html
標籤:其他
