正在更新列表视图SharePoint PowerShell



我希望能够更新;JSLink";属性。然而,我不断得到以下错误:

"集合已修改;枚举操作可能无法执行">

我有以下PowerShell:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Temp Site
$siteColl = "mysitecollectionURL"
$site = Get-SPSite $siteColl

#JS file to add
$jSFile = "clienttemplates.js"
#Lists to update
$masterTasks = "Master Tasks"
$allTasks = "All Tasks"
Write-Host "`nChecking site:" $site.RootWeb.URL

#Get root web
$web = $site.RootWeb

#Iterating lists
foreach($list in $web.Lists)
{   
if($list.Title -eq $masterTasks)
{
write-host "`n`tMaster Tasks list found"

#Iterating views
foreach($view in $list.Views)
{
$view.JSLink = $jSFile
$view.Update()
}
}

if($list.Title -eq $allTasks)
{
write-host "`n`tAll Tasks list found"

#Iterating views
foreach($view in $list.Views)
{
$view.JSLink = $jSFile
$view.Update()
}
}
}
$web.Dispose()

Write-Host "`n"

我哪里错了?如有任何建议,不胜感激。。

使用for循环而不是foreach,因为在foreach循环中,无法删除或更新属性:

$web = $site.RootWeb
For($i=0; $i -lt $web.Lists.count; $i++)
{
if($web.Lists[$i].Title  -eq $masterTasks)
{
write-host "`n`tMaster Tasks list found"
For($j=0; $j -lt $list.Views.Count; $j++)
{
$view=$list.Views[$j]
$view.JSLink  = $jSFile
$view.Update()
}
}
if($web.Lists[$i].Title  -eq $allTasks)
{
write-host "`n`tAll Tasks list found"

#Iterating views

For($k=0; $k -lt $list.Views.Count; $k++)
{
$otherview= $list.Views[$k]
$otherview.JSLink  = $jSFile
$otherview.Update()
}
}

}


$web.Dispose()

这里有一个博客指定了与解决方案相同的错误消息,请参考:

集合已修改;枚举操作可能无法执行

相关内容

  • 没有找到相关文章

最新更新