【发布时间】:2016-05-15 12:15:14
【问题描述】:
希望你能帮助我。 我正在编写一个在共享点环境中执行若干修改的 powershell 脚本。
我想将网络上的 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) 有效.. 不在脚本中.. 我收到一个错误,表明集合尚未准备好.. 但实际上它是^^..
有什么想法吗?希望你能帮忙 问候
【问题讨论】:
-
嗨!请问您是如何从第一个站点获得 $RoomWebRoleAssignment.Member 和 $RoomWebRoleAssignment.RoleDefinitionBindings 的?谢谢!
-
我通过上下文加载它们。类似于(SpWeb 是 Web 的 CSOM 对象)ctx.Load(spWeb, w=>w.RoleAssignments.Include(assignment => assignment.PrincipalId, ......))
标签: powershell sharepoint csom