SharePoint Online: eliminar el tipo de contenido de la lista mediante PowerShell
Requisito: Eliminar un tipo de contenido de la lista de SharePoint Online.
¿Cómo eliminar un tipo de contenido de una lista en SharePoint Online?
Los tipos de contenido son colecciones reutilizables de metadatos que definen las columnas y el comportamiento de los elementos dentro de una lista o biblioteca. Puede haber situaciones en las que necesite eliminar un tipo de contenido de una lista o biblioteca. Puede eliminar un tipo de contenido asociado con una lista en SharePoint Online cuando ya no lo necesite. En este artículo, lo guiaremos a través del proceso de eliminar un tipo de contenido de una lista de SharePoint Online usando PowerShell.
Para eliminar un tipo de contenido de la lista de SharePoint Online, haga lo siguiente:
- Primero, inicie sesión en su sitio de SharePoint Online >> Navegue hasta la lista o configuración de la biblioteca.
- A continuación, en "Tipos de contenido", haga clic en el nombre del tipo de contenido apropiado que desea eliminar de la lista.
Finalmente, haga clic en el enlace "Eliminar este tipo de contenido" en la página Listar tipo de contenido y confirme el mensaje una vez para eliminar el tipo de contenido de la lista.
Tenga en cuenta que esto sólo eliminará el tipo de contenido de la lista, no eliminará el tipo de contenido en sí. Si necesita eliminar el tipo de contenido por completo, deberá hacerlo desde la página de configuración del sitio.
Eliminar tipo de contenido de la lista usando PowerShell en SharePoint Online
Los tipos de contenido que no se utilizan en listas o bibliotecas se pueden eliminar. Para eliminar un tipo de contenido de una lista de SharePoint Online, use este script de PowerShell. Debe especificar la URL del sitio, el nombre del tipo de contenido y el nombre de la lista como parámetros.
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Function Remove-ContentTypeFromList()
{
param
(
[Parameter(Mandatory=$true)] [string] $SiteURL,
[Parameter(Mandatory=$true)] [string] $ListName,
[Parameter(Mandatory=$true)] [string] $ContentTypeName
)
Try {
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the List
$List = $Ctx.Web.Lists.GetByTitle($ListName)
$Ctx.Load($List)
#Get the content type from list
$ContentTypeColl = $List.ContentTypes
$Ctx.Load($ContentTypeColl)
$Ctx.ExecuteQuery()
#Get the content type to remove
$CTypeToRemove = $ContentTypeColl | Where {$_.Name -eq $ContentTypeName}
If($CTypeToRemove -ne $Null)
{
#Remove content type from list
$CTypeToRemove.DeleteObject()
$Ctx.ExecuteQuery()
Write-host "Content Type '$ContentTypeName' Removed From '$ListName'" -f Green
}
else
{
Write-host "Content Type '$ContentTypeName' doesn't exist in '$ListName'" -f Yellow
Return
}
}
Catch {
write-host -f Red "Error Removing Content Type from List!" $_.Exception.Message
}
}
#Set parameter values
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"
$ContentTypeName="ProjectMilestone"
#Call the function
Remove-ContentTypeFromList -SiteURL $SiteURL -ListName $ListName -ContentTypeName $ContentTypeName
Para confirmar que el tipo de contenido se ha eliminado correctamente de la lista, navegue hasta la configuración de la lista en el sitio de SharePoint Online y verifique la lista de tipos de contenido. El tipo de contenido que eliminó ya no debería aparecer en la lista.
Eliminar tipo de contenido de la lista de SharePoint Online usando PnP PowerShell:
Como administrador, es posible que necesite eliminar un tipo de contenido de la lista de SharePoint Online. Permítame mostrarle cómo conectarse a su lista o biblioteca de SharePoint Online y eliminar un tipo de contenido usando PnP PowerShell:
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ListName ="Project Documents"
$ContentTypeName ="Invoice Template V2"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
$Context = Get-PnPContext
#Get the content type from list
$ListContentType = Get-PnPContentType -list $ListName -Identity $ContentTypeName
#Delete the content type from List
$ListContentType.DeleteObject()
$Context.ExecuteQuery()
También puede eliminar el tipo de contenido de una lista utilizando el cmdlet Remove-PnPContentTypeFromList:
#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$ListName = "Projects"
$ContentTypeName ="Crescent Project Proposal V2"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Remove content type from List
Remove-PnPContentTypeFromList -List $ListName -ContentType $ContentTypeName
Si sigue los pasos descritos en este artículo, podrá eliminar fácilmente tipos de contenido de las listas según sea necesario. Esto le permite mantener un entorno de SharePoint Online limpio y organizado, asegurando que sus listas y bibliotecas sigan siendo relevantes y actualizadas para sus usuarios.
Tenga en cuenta que no puede eliminar el tipo de contenido de una lista si la lista tiene elementos creados en función del tipo de contenido particular que desea eliminar. Esto podría provocar el error "El tipo de contenido todavía está en uso", tanto desde la interfaz de usuario de SharePoint como si usa PowerShell para eliminar el tipo de contenido de la lista. Aquí hay otra publicación que puede ayudar: ¿Obtienes el mensaje "El tipo de contenido de lista todavía está en uso" en SharePoint Online? Descubra dónde utilizar PowerShell
