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

2021年09月15日 阅读数:2
这篇文章主要向大家介绍SharePoint 解决方案:如何获取Library或者List下的Item数量,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

51CTO 博客地址:https://blog.51cto.com/13969817
博客园博客地址:https://www.cnblogs.com/bxapollo
web

今天给你们分享一下如何使用PowerShell CSOM 脚本为特定的Library或者List获取Item count,包括其下全部的文件夹中的item,这样有利于作数据分析和统计,好比组织结构变动,须要将数据作迁移,那么就能够经过该种方法对比迁移前的数据量和迁移后的目的端item count,以确保数据迁移先后的数量是一致的。shell

获取Item count方案有不少,好比PnP PowerShell等等,本文将为你们介绍的是PowerShell CSOM 脚本的解决方案。ide

具体执行分为如下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",以下所示:url

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

说明:加载这两个dll文件,须要在部署SharePoint Server端执行,不然默认状况下物理路径是没有该文件的。.net

处理变量,确保链接SharePoint Onlinecode

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

blog

说明:须要输入Microsoft 365 Global Admin的帐户和密码,以下所示:br/>$UserName="XXXXXX@MVPTrainingCN.onmicrosoft.com"
$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数量

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