[SharePoint 2010] "The collection cannot be modified."

Estaba creando un powershell para añadir a un content type existente una columna de sitio con el siguiente código:

$site = Get-SPSite $url

$web = $site.RootWeb

$contenttype = $web.AvailableContentTypes["..."]

$field = $web.Fields.GetFieldByInternalName("...")

 

if ($contenttype -eq $null)

{

    Write-Host "Content Type ... does not exist"

}

elseif ($field -eq $null)

{

    Write-Host "Site Column does ... not exist"

}

else

{

    if ($contenttype.Fields.Contains($field.Id))

    {

        Write-Host "Content Type ... contains site column ..."

    }

    else

    {

        $link = New-Object Microsoft.SharePoint.SPFieldLink($field)

        $contenttype.FieldLinks.Add($link)

        $contenttype.Update($true)

        Write-Host "Content Type has been updated successfully"

    }

}

Y he recibido este error:

Exception calling "Update" with "1" argument(s): "The collection cannot be modified."

At C:…kbkb110926.ps1:41 char:24

+                 $contenttype.Update <<<< ($true)

    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException

    + FullyQualifiedErrorId : DotNetMethodException

Solución:

Usar la propiedad ContentTypes en vez de AvailableContentTypes porque es read-only:

$contenttype = $web.ContentTypes["..."]

Un saludo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *