Как использовать Get-PnPFolder для отображения перманента папки SharePoint - PullRequest
1 голос
/ 22 мая 2019

Я использую PowerShell PNP, чтобы попытаться прочитать разрешения для папки, но команда Get-PnPFolder, по-видимому, не включает разрешения.

Я попробовал код, указанный здесь, но коллекция разрешений пуста. https://sharepoint.stackexchange.com/questions/221118/retrieve-permissions-at-folder-and-file-level-in-powershell/221513. Этот небольшой пример ниже - то, что я использовал для тестирования.

$spserver = 'https://myportal.sharepoint.com/sites/mysite/'
Connect-PnPOnline –Url $spserver –UseWebLogin
$foldername = 'myFormLibraryName'
$folderObj = Get-PnPFolder -Url $foldername -Includes ListItemAllFields.RoleAssignments, ListItemAllFields.HasUniqueRoleAssignments 
$folderObj.ListItemAllFields.HasUniqueRoleAssignments
$folderObj.ListItemAllFields.RoleAssignments

Результаты кода вернутся "collection has not been initialized". Как получить список разрешений для папки SharePoint?

1 Ответ

0 голосов
/ 03 июня 2019

Мне не удалось заставить код работать с Get-PnPFolder, и я использовал приведенный ниже код в качестве альтернативы.

$spserver = 'https://myportal.sharepoint.com/sites/mysite/'
Connect-PnPOnline –Url $spserver –UseWebLogin
$ctx=Get-PnPContext
$foldername = 'Documents'
$web = $ctx.Web
$list = $ctx.Site.RootWeb.Lists.GetByTitle($foldername)
$ctx.Load($list)
$ctx.ExecuteQuery()
Write-Host 'count is ' $list.ItemCount
$roleass = $list.RoleAssignments
$ctx.Load($roleass)
$ctx.ExecuteQuery()
Write-Host 'loaded'
foreach($rol in $roleass) {
    $ctx.Load($rol.Member)
    $ctx.ExecuteQuery()
    Write-Host $rol.Member.Title
}
...