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

Got*_*Jay 3 powershell sharepoint-online

我有一个图书馆,里面有大约 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>"
Run Code Online (Sandbox Code Playgroud)

我只期望显示一个结果,即在文档库中找到文件名时。所以我不确定为什么会显示错误消息。有什么想法吗?

小智 5

如果你使用 pnp.powershell 你可以这样做:

Connect-PnPOnline -Interactive
$ListName  = "My list"     
Get-PnPListItem -List $ListName -PageSize 2000 -ScriptBlock { Param($items) $items.Context.ExecuteQuery()} | ForEach-Object {
 $_ #This is the list Item
} 
Run Code Online (Sandbox Code Playgroud)

该脚本将收集所有列表项,甚至超过 5000 个,批量为 2000 个。