SharePoint 解决方案:如何获取Library或者List下的Item数量

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",如下所示:

SharePoint 解决方案:如何获取Library或者List下的Item数量

说明:加载这两个dll文件,需要在部署SharePoint Server端执行,否则默认情况下物理路径是没有该文件的。

处理变量,确保连接SharePoint Online

$SiteUrl = "https://mvptrainingcn.sharepoint.com/sites/Demo2"
$ListName="TrainingDocument"
SharePoint 解决方案:如何获取Library或者List下的Item数量

说明:需要输入Microsoft 365 Global Admin的账户和密码,如下所示:br/>$UserName="[email protected]"
$Password ="XXXXXX"
SharePoint 解决方案:如何获取Library或者List下的Item数量

自定义函数从特定的网站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

SharePoint 解决方案:如何获取Library或者List下的Item数量

可以看到获取到的Item数量是2,与SharePoint Online的实际情况吻合,如下图所示:

SharePoint 解决方案:如何获取Library或者List下的Item数量

希望本次分享的数据统计方法对大家有帮助,持续关注我,后续会分享更多使用小技巧,谢谢阅读。

猜你喜欢

转载自blog.51cto.com/13969817/2592078