首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用PnP PowerShell检索大型SharePoint库中的所有列表项

如何使用PnP PowerShell检索大型SharePoint库中的所有列表项
EN

Stack Overflow用户
提问于 2019-08-08 07:58:54
回答 5查看 3K关注 0票数 1

我有一个图书馆,里面有大约25k个项目。我有一个包含两个文件夹的csv,我想授予对这些文件夹的项目级权限。但首先,我需要从库中检索所有项目。不出所料,我得到了一个关于管理员强制执行的阈值限制的错误。我在想,有没有办法通过PnP来解决这个问题。

我基本上使用了Get-PnPListItem -List Documents-PageSize 1000来限制一次返回的项目数,但我仍然得到了错误消息。我也尝试了下面的代码,使用的caml query;也不起作用。

代码语言:javascript
运行
复制
$filename = test.docx
Get-PnPListItem -List Documents -Query
"<View><Query><Where><Eq><FieldRef Name='FileLeafRef'/>
<Value Type='File'>' +$filename+ '</Value></Eq></Where></Query></View>"

我只希望显示一个结果,那就是在文档库中找到文件名的时候。所以我不确定为什么会显示错误消息。有什么建议吗?

EN

回答 5

Stack Overflow用户

发布于 2019-08-08 08:20:20

您可以将列表下载到Excel中。在列表视图中,单击“导出到Excel”。它将导出所有可见列和所有项目。然后操作Excel文件并另存为CSV。

或者,您可以使用Power Query查询列表并将其加载到Excel中。

这两种方法都将支持超过25K的行。

票数 0
EN

Stack Overflow用户

发布于 2020-07-29 17:53:13

这是一个已知的问题。如果你想从一个大的列表中检索一些项目(对于SharePoint Online来说超过5000个项目),没有可能使用-Query参数来获取-PnPListItem。这是令人苦恼的,因为你使用-Query的主要原因可能是有很多项目,你想在服务器端过滤它们,以避免过多的网络带宽等。

如果您在使用-Query的同时还指定了-PageSize,和/或在CAML查询中输入了put,则看起来没有任何效果,服务器会以“尝试的操作被禁止,因为它超过了管理员强制执行的列表视图阈值”作为响应。

在仍然使用PnP-PowerShell的同时,解决这个问题的唯一方法是删除-Query,使用-PageSize获取每个项目,然后使用foreach/select/where-object本地处理这些项目。有关详细信息,请参阅:

或者,您可以使用try CSOM cmdlet并将筛选后的列添加到indexs列表中:

BR

票数 0
EN

Stack Overflow用户

发布于 2021-05-14 12:31:47

这确实可以与pnp.powershell模块一起使用,以获取超过5000行的行。

代码语言:javascript
运行
复制
$query = "<View Scope='RecursiveAll'><RowLimit>5000</RowLimit></View>" 
$itemsInList = Get-PnPListItem -List 'TestList' -Query $query
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57403580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档