我有一个图书馆,里面有大约25k个项目。我有一个包含两个文件夹的csv,我想授予对这些文件夹的项目级权限。但首先,我需要从库中检索所有项目。不出所料,我得到了一个关于管理员强制执行的阈值限制的错误。我在想,有没有办法通过PnP来解决这个问题。
我基本上使用了Get-PnPListItem -List Documents-PageSize 1000
来限制一次返回的项目数,但我仍然得到了错误消息。我也尝试了下面的代码,使用的caml query;
也不起作用。
$filename = test.docx
Get-PnPListItem -List Documents -Query
"<View><Query><Where><Eq><FieldRef Name='FileLeafRef'/>
<Value Type='File'>' +$filename+ '</Value></Eq></Where></Query></View>"
我只希望显示一个结果,那就是在文档库中找到文件名的时候。所以我不确定为什么会显示错误消息。有什么建议吗?
发布于 2019-08-08 08:20:20
您可以将列表下载到Excel中。在列表视图中,单击“导出到Excel”。它将导出所有可见列和所有项目。然后操作Excel文件并另存为CSV。
或者,您可以使用Power Query查询列表并将其加载到Excel中。
这两种方法都将支持超过25K的行。
发布于 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
发布于 2021-05-14 12:31:47
这确实可以与pnp.powershell模块一起使用,以获取超过5000行的行。
$query = "<View Scope='RecursiveAll'><RowLimit>5000</RowLimit></View>"
$itemsInList = Get-PnPListItem -List 'TestList' -Query $query
https://stackoverflow.com/questions/57403580
复制相似问题