首页 > 解决方案 > 在子文件夹上运行 Get-PnpListItem

问题描述

我正在尝试在线获取有关 SharePoint 中有很多版本的文件的一些信息,并为此使用 Get-PnPListItem。问题是 - 在浏览包含大量文件的站点时超时。所以我想在每个子文件夹而不是整个共享文档文件夹上运行这个命令,我创建了以下脚本:

function rKGetFileVersions { 
  param ([string]$folderf );  
   Write-Host "-- **** F: " $folderf " ********* "  
   $FFItems = Get-PnPListItem -List $folderf -Query $Fquery  -Connection $con 
    ForEach($fItem in $FFItems){ 
        if($fItem.FileSystemObjectType -like "*File*"){ 
           Write-Host "File: " $folderf "/" $fItem["FileLeafRef"] 
           $Vs = Get-PnPProperty -ClientObject $fItem -Property Versions -Connection $con 
            if($Vs.Count -gt 400){  # more than 400 versions so capture file info into  
               write-host -f Cyan "Versions: " $Vs.count " - " $Item["FileRef"] 
            } 
        }elseif ($fItem.FileSystemObjectType -like "*Folder*") {   
            Write-Host "Folder: " $folderf "/" $fItem["FileLeafRef"] $fItem["GUID"] 
            rKGetFileVersions($folderf+"/"+$fItem["FileLeafRef"]);      
        }else { 
            Write-Host "   == NONE== " $fItem.ServerRelativeUrl  
        } 
    } 
} 

#------- Global SP App ------------ 

$Mfolder =  "Shared Documents" 

$Fquery = "<View Scope='Default'><FieldRef Name=''/></View>" 

rKGetFileVersions($Mfolder); 

但是当它试图转到子文件夹时,我收到错误“列表不存在”。知道我在这里做错了什么吗?
谢谢

标签: powershellsharepointsharepoint-online

解决方案


您可以改用 Get-PnPFolderItem 来实现此目的。

例如:

Get-PnPFolderItem -FolderSiteRelativeUrl "Shared Documents/subfolder"

在此处输入图像描述


推荐阅读