¿Cómo crear un tipo de contenido en SharePoint usando PowerShell?
Un tipo de contenido en SharePoint es un marco fundamental para cualquier elemento, como tarea, documento, evento, etc. Cada tipo de contenido tiene su propio conjunto de columnas y plantillas de metadatos, políticas de administración de información y flujos de trabajo. En SharePoint, podemos crear nuestros propios tipos de contenido personalizados a partir de tipos de contenido existentes, como el tipo de contenido "Factura" basado en un tipo de contenido de documento, y agregarle columnas personalizadas, por ejemplo "Fecha de factura".
¿Cómo crear un tipo de contenido en SharePoint?
Para agregar un tipo de contenido en SharePoint, siga estos pasos:
- Vaya a Configuración del sitio >> Haga clic en "Tipos de contenido del sitio" en el grupo "Galerías de diseñadores web".
En la página de tipos de contenido del sitio, verá la lista de tipos de contenido predeterminados como Elemento, Tareas, Documento, etc., agrupados por secciones. Haga clic en el enlace "Crear" en la parte superior.
- Proporcione un nombre para su tipo de contenido personalizado. Opcionalmente, puede ingresar la descripción de su nuevo tipo de contenido para dejar claro su propósito.
Seleccione el tipo de contenido principal, como "Elemento", en el que se basa su tipo de contenido. Puede crear un nuevo grupo de tipo de contenido o seleccionar cualquiera existente.
- Haga clic en Aceptar para completar la creación del tipo de contenido. Una vez creado el tipo de contenido, el siguiente paso es agregar las columnas de sitio requeridas al tipo de contenido para que los metadatos estén disponibles desde el tipo de contenido.
Crear tipo de contenido en SharePoint usando PowerShell
Creemos un nuevo tipo de contenido en SharePoint 2016 usando PowerShell:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Set Parameters
$SiteURL = "https://intranet.crescent.com/"
$ContentTypeName = "Crescent Projects"
#Get the Root web
$web = Get-SPWeb $SiteURL
#Get parent content type - "Item"
$ParentContentType = $web.AvailableContentTypes["Item"]
#Check if the content type already exists
$ContentType = $web.ContentTypes[$ContentTypeName]
If($ContentType -eq $NULL)
{
#Create new content type from "item" Content Type
$ContentType = New-Object Microsoft.SharePoint.SPContentType($ParentContentType, $web.ContentTypes, $ContentTypeName)
$ContentType.Description ="Crescent Projects Content Type"
$ContentType.Group = "Crescent Content Types"
$web.ContentTypes.Add($ContentType)
$web.Update()
Write-Host "Content Type '$ContentTypeName' Created Successfully!" -ForegroundColor Green
}
else
{
Write-Host "Content Type '$ContentTypeName' Already Exists!" -ForegroundColor Red
}
Este PowerShell crea un nuevo tipo de contenido en SharePoint. Ahora el siguiente paso es agregarle algunas columnas: agreguemos una columna "Nombre del proyecto" al tipo de contenido.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Set Parameters
$SiteURL = "https://intranet.crescent.com/"
$ContentTypeName = "Crescent Projects"
#Get the Root web
$web = Get-SPWeb $SiteURL
#Get the Content Type
$ContentType = $web.ContentTypes[$ContentTypeName]
#Check if the content type exists
If($ContentType -ne $NULL)
{
#Create new Site column
$FieldName="ProjectName"
#Check if field exists already
$Field = $web.Fields | where {$_.InternalName -eq $FieldName}
If($Field -eq $null)
{
#Add a Site Column
$Field = $Web.Fields.Add($FieldName, [Microsoft.SharePoint.SPFieldType]::Text, $false)
}
#Get a Field Link to Add the site column to content type
$Field=$web.Fields[$FieldName]
$FieldLink = new-object Microsoft.SharePoint.SPFieldLink($Field)
#Add Site column to content type
$contentType.Fieldlinks.add($FieldLink)
$contentType.Update()
Write-Host "Fied Added to Content Type '$ContentTypeName' Successfully!" -ForegroundColor Green
}
else
{
Write-Host "Content Type '$ContentTypeName' Doesn't Exist!" -ForegroundColor Red
}
Para crear un tipo de contenido en SharePoint Online usando PowerShell, consulte: ¿Cómo crear un tipo de contenido en SharePoint Online usando PowerShell?

