powershell - 将新用户添加到 SharePoint 对象时,集合大小固定错误
问题描述
将用户添加到 SharePoint 文件夹对象时遇到以下错误:
使用“1”参数调用“添加”的异常:“集合具有固定大小。”
在 D:\User\Script1.ps1:114 char:17 $FPfolder.RoleAssignments.Add($assignment)
- CategoryInfo: NotSpecified: (:) [], MethodInvocationException
- FullyQualifiedErrorId : NotSupportedException
下面是我的代码片段:
ForEach ($FPfolderId in $FPfolderSplit)
{
$query = New-Object Microsoft.SharePoint.SPQuery
$query.ViewXml = "@<View Scope='RecursiveAll'><Query><Where><Eq><FieldRef Name='Title' /><Value Type='Text'>$FPfolderId</Value></Eq></Where></Query></View>"
$FPfolder = $FPlist.GetItems($query)
foreach($role in $FPfolder.RoleAssignments)
{
if ($role.Member.Name.Equals($userToAction))
{
$FPfolder.BreakRoleInheritance($true)
$account = $web.EnsureUser("User1")
$assignment = New-Object Microsoft.SharePoint.SPRoleAssignment($account)
$FPfolder.RoleAssignments.Add($assignment)
$FPfolder.Update()
}
}
}
解决方案
我之前已经在这里发布了关于您的问题的答案
在您的情况下$FPfolder
是 ListItems 的集合。您不能将角色分配添加到集合中。
如果您确定这$FPfolder
是一个仅包含一个元素(文件夹)的集合,只需[0]
在$FPlist.GetItems($query)
.
或者您可以重命名$FPfolder
并$FPfolders
添加额外的 foreach 循环来迭代 SP 文件夹:
ForEach ($FPfolderId in $FPfolderSplit)
{
$query = New-Object Microsoft.SharePoint.SPQuery
$query.ViewXml = "@<View Scope='RecursiveAll'><Query><Where><Eq><FieldRef Name='Title' /><Value Type='Text'>$FPfolderId</Value></Eq></Where></Query></View>"
$FPfolders = $FPlist.GetItems($query)
foreach($FPfolder in $FPfolders )
{
foreach($role in $FPfolder.RoleAssignments)
{
if ($role.Member.Name.Equals($userToAction))
{
$FPfolder.BreakRoleInheritance($true)
$account = $web.EnsureUser("User1")
$assignment = New-Object Microsoft.SharePoint.SPRoleAssignment($account)
$FPfolder.RoleAssignments.Add($assignment)
$FPfolder.Update()
}
}
}
}
推荐阅读
- r - 将 2002-2020 年批量财务数据的 .txt 文件合并到一张表中
- iteration - 使用定点显示平方根
- amazon-web-services - 如何限制多个 Fargate 任务之间的流量
- java - 无法将基于模块的 maven java 11 项目正确导入 Eclipse(使用模块信息文件)
- angular - 如何为我的 scully 插件应用配置?
- javascript - MSBuild 错误的声纳扫描仪:无法解析文件 [
l-debug.js] 在第 55623 行:意外的令牌( - json - 如何根据bash中的键从json中获取值
- react-native - React Native 测试框架 findBy 没有找到并且 waitFor 没有等待
- performance - 200K 行/秒 Clickhouse 的最大性能是什么?
- sql - 模式 SQL:动态日期参数