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的实际状况吻合,以下图所示:

 

 以上是本次分享的数据统计方法,但愿对你们有所帮助,持续关注我,后续分享更多使用小技巧,谢谢阅读。

相关文章
相关标签/搜索