我一直在编写一个脚本来在线连接到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)部分并因上述错误而停止。
在我的电脑开出窗户之前,我真的很感激这一点。
由于 标记
修改的
所有代码均来自此页面:
唯一的变化是我使用get principal fun而不是get组,但不确定是否已经完成了它。我对powershell很新。
由于
答案 0 :(得分:0)
如果之前未加载,我认为你不能在$ collRoleAssign中添加一些东西。 您收到错误,因为它具有空值。
我会这样写的:
$collRoleAssign = $web.RoleAssignments
$ctx.Load($collRoleAssign)
评论:我想你已经在
之前设置了$ principal$ctx.Load($principal)
评论:这里我假设$ collRdb已设置并加载
$collRoleAssign.Add($principal, $collRdb)
$ctx.ExecuteQuery()
顺便说一下,有一个“;”在您的代码中不应该存在
我没试过,但这应该有帮助!
西尔