2016-02-05 3 views
0

надеюсь, что вы можете мне помочь. Я работаю над скриптом powershell, выполняющим серверные модификации в среде sharepoint.SharePoint CSOM Copy - RoleAssignment

Я хочу скопировать RoleAssignments из Интернета в другую в том же семействе сайтов. В основном это работает, когда я запускаю руководство для своих команд в консоли, но он выполняет работу во время запуска скрипта.

Что я делаю, так это.

$RoleAssignmentMember = $RoomWebRoleAssignment.Member 
    $RoleBindings = $RoomWebRoleAssignment.RoleDefinitionBindings 
    $ctx.Load($RoleAssignmentMember) 
    $ctx.Load($RoleBindings) 
    $ctx.ExecuteQuery() 


    $Web.RoleAssignments.Add($RoleAssignmentMember, $RoleBindings) 
    $ctx.ExecuteQuery() 

Запуск $ Web.RoleAssignments.Add ($ RoleAssignmentMember, $ RoleBindings) в консоли работает .. нет в сценарии .. Я получил сообщение об ошибке, что коллекция не готова .. но acutally это ^^ ..

Любые идеи? Упование вы можете помочь Greetz

+0

Привет! могу я спросить вас, как вы получаете $ RoomWebRoleAssignment.Member и $ RoomWebRoleAssignment.RoleDefinitionBindings с первого сайта? Thks! – mafalda

+0

Я загружаю их через контекст. Нечто подобное (SPWeb является CSOM Объект полотна) ctx.Load (SPWeb, ш => w.RoleAssignments.Include ( присваивания => assignment.PrincipalId, ...... )) –

ответ

0

Извините, глупый меня.

для людей, которые заинтересованы:

# Load it 
$ctx.Load($Web.RoleAssignments.Add($RoleAssignmentMember, $RoleBindings)); 
$ctx.ExecuteQuery();