Powershell CSOM Sharepoint在线列表权限

时间:2014-02-13 23:06:43

标签: sharepoint powershell

我一直在编写一个脚本来在线连接到SharePoint,创建一个文档库并在权限中添加一些AD帐户。我已经使用我通过许多搜索找到的代码片段编写了所有代码,但是我遇到了权限部分的问题。

将用户和权限类型添加到roledefinitionbinding时,我一直收到错误消息。 错误是:

收集尚未在第0行char 0初始化。

这是我的代码

$collRdb = new-object Microsoft.SharePoint.Client.RoleDefinitionBindingCollection($ctx)
$collRdb.Add($role)
$collRoleAssign = $web.RoleAssignments;
$ctx.Load($principal)
$collRoleAssign.Add($principal, $collRdb)

$ctx.ExecuteQuery()

问题是它运行$ collRoleAssign.Add($ principal,$ collRdb)部分并因上述错误而停止。

在我的电脑开出窗户之前,我真的很感激这一点。

由于 标记

修改

所有代码均来自此页面:

http://jeffreypaarhuis.com/2012/06/07/scripting-sharepoint-online-with-powershell-using-client-object-model/

唯一的变化是我使用get principal fun而不是get组,但不确定是否已经完成了它。我对powershell很新。

由于

1 个答案:

答案 0 :(得分:0)

如果之前未加载,我认为你不能在$ collRoleAssign中添加一些东西。 您收到错误,因为它具有空值。

我会这样写的:

$collRoleAssign = $web.RoleAssignments
$ctx.Load($collRoleAssign)

评论:我想你已经在

之前设置了$ principal
$ctx.Load($principal)

评论:这里我假设$ collRdb已设置并加载

$collRoleAssign.Add($principal, $collRdb)
$ctx.ExecuteQuery()

顺便说一下,有一个“;”在您的代码中不应该存在

我没试过,但这应该有帮助!

西尔