1

문서 라이브러리를 반복하여 각 문서/항목이 고유 한 사용 권한을 사용하는 순간에 사용 권한을 상속 받도록 설정하려고합니다.SharePoint Online 문서 라이브러리 반복 반복 CSOM

특정 문서 라이브러리를 가져올 수 있지만 각 문서/문서를 반복 할 수는 없습니다. 이것은 내가 지금까지 무엇을 가지고 :

Add-Type -Path "Libraries\Microsoft.SharePoint.Client.dll" 
Add-Type -Path "Libraries\Microsoft.SharePoint.Client.Runtime.dll" 
Add-Type -Path "Libraries\Microsoft.SharePoint.Linq.dll" 
Add-Type -Path "Libraries\Microsoft.SharePoint.dll" 

$webUrl = "https://test.sharepoint.com/sites/testsite" 
$username = "####" 
$password = "####" 
$securePass = ConvertTo-SecureString $password -AsPlainText -Force 
$listname = "TestDoc"; 

$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl) 
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $securePass) 

#variables 
$web = $ctx.Web 
$lists = $web.Lists 
$ctx.Load($lists) 
$ctx.Load($web) 
$ctx.ExecuteQuery() 

#print web URL 
write-host `n "Web Url:" `n $web.Url 

foreach ($list in $lists) 
{ 

    if ($list.Title -eq "TestDoc") 
    { 
     #print list name if found 
     write-host `n "Found the list:" `n $list.Title `n 


      #attempting to iterate through items in the document library 
      foreach ($item2 in $list.Items) 
      { 
       #list the items/documents in the document library 
       write-host $item2.Title 
      } 


    } 
} 

나는 확실하지 않다 그것은 내가 순간에 문제가 발생하고있는 foreach 루프 어떻게 문서 라이브러리의 항목/문서의 각 불구 루프.

내가 취해야 할 접근법에 대한 제안은 매우 감사하겠습니다.

답변

0

오류 내가 얻고 있었다 : "1": "로드"인수 개수에 대한 과부하를 찾을 수 없습니다

. C : \ Users \ setup \ Desktop \ Test-BreakInheritence- 스크립트 -SPOnline \ Permissions-Inh eritence.ps1 : 38 char : 3 + $ ctx.Load ($ items) + ~~~~~~~~~~~~~~~~~~~ ~~~~~~ + CategoryInfo : NotSpecified : (:) [], MethodException + FullyQualifiedErrorId :

Additinal 매개 변수를 전달해야하는 Load() 메서드와 관련이 있습니다. list/listItem을 다룰 때만 필요하다고 생각합니다. 정확한 원인을 조사하고 너무 많은 시간을 할애하지 않았다,하지만 난 내 솔루션을 재 작업하고 간단하게 만들었 :이 지금은 매력처럼 작동

Add-Type -Path "Libraries\Microsoft.SharePoint.Client.dll" 
Add-Type -Path "Libraries\Microsoft.SharePoint.Client.Runtime.dll" 
Add-Type -Path "Libraries\Microsoft.SharePoint.Linq.dll" 
Add-Type -Path "Libraries\Microsoft.SharePoint.dll" 

    $webUrl = "https://test.sharepoint.com/sites/testsite" 
    $username = "####" 
    $password = "####" 
    $securePass = ConvertTo-SecureString $password -AsPlainText -Force 
    $listname = "TestDoc" 

    $ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl) 
    $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $securePass) 


    #get the List/DocLib and load it for use 
    $listUpdate = $ctx.Web.Lists.GetByTitle($listname) 
    $ctx.Load($listUpdate) 
    $ctx.ExecuteQuery() 

    #CAML Query to get all items inclusing sub-folders 
    $spQuery = New-Object Microsoft.SharePoint.Client.CamlQuery 
    $spQuery.ViewXml = "<View Scope='RecursiveAll' />"; 
    $itemki = $listUpdate.GetItems($spQuery) 
    $ctx.Load($itemki) 
    $ctx.ExecuteQuery() 

    #iterating through the items and reseting permission inheritence 
    for($j=0; $j -lt $itemki.Count; $j++) 
    { 
     $itemki[$j].ResetRoleInheritance() 
     $ctx.ExecuteQuery() 
    } 

합니다.

+0

감사합니다. 이를 통해 SPO 문서 라이브러리에서 문서의 제목을 수정하는 스크립트를 만들 수있었습니다. –