为Sharepoint文档库中的文件夹“创建者”

时间:2019-08-07 05:47:31

标签: powershell sharepoint

我想使用PnP PowerShell在Sharepoint Online中为作者(创建者)创建一个文件夹。我可以获取上次修改的时间,但是我无法获取该字段的作者。我知道可以是两个不同的字段,作者和修饰符,但是我不能从中得到任何信息。

对于文件夹:

$folder = Get-PnPFolderItem -FolderSiteRelativeUrl $folderPath -ItemName $subfolderName
Write-Host "URL      : " $folder.ServerRelativeUrl
Write-Host "Name     : " $folder.Name
Write-Host "Modified : " $folder.TimeLastModified
# above are ok, but $folder has no author property
# same next line fails, Author it does not exist
$folder= Get-PnPFolder -Url "$folderPath/$subfolderName" -Includes ListItemAllFields.Author

对于文件,我很容易使用:

Get-PnPFile -ServerRelativeUrl $file.ServerRelativeUrl -Path $destinationfolder -FileName $file.Name -AsFile
$f = Get-PnPFile  -Url "$($folderUrl)/$($file.Name)" -AsListItem
$fileDetails = @{            
    File = "$($destinationFolder)/$($file.Name)"
    Author = $f["Author"].Email
    Created = $f["Created"]
}

1 个答案:

答案 0 :(得分:0)

只要有人需要,我就找到解决方案:

context = Get-PnPContext
$context.load($context.Web)
$context.ExecuteQuery()
$list = $context.Web.Lists.GetByTitle("Documente")
$context.Load($list)
$context.ExecuteQuery()
$camlQuery = New-Object Microsoft.SharePoint.Client.CamlQuery
$camlQuery.ViewXml ="<View Scope='RecursiveAll'><Query><Where><Eq><FieldRef Name='FileRef' /><Value Type='Text'>/server/folder/relativepath</Value></Eq></Where></Query></View>";
$allItems=$list.GetItems($camlQuery)
$context.Load($allItems)
$context.ExecuteQuery()

foreach($item in $allItems){
   Write-Host "##############"
   Write-Host $item["FileRef"]
   $item["Author"].Email
   $item["Modified"]
}