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

网友投稿 273 2022-10-03

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

51CTO 博客地址: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

自定义函数从特定的网站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的实际情况吻合,如下图所示:

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java模拟实现银行ATM机操作
下一篇:如何将设备注册到Intune中管理 -- Android篇
相关文章

 发表评论

暂时没有评论,来抢沙发吧~