SharePoint Online: crear una columna de sitio de metadatos administrados mediante PowerShell
Requisito: Agregar una columna de sitio de metadatos administrados en SharePoint Online mediante PowerShell.
¿Cómo crear una columna de sitio de metadatos administrados en SharePoint Online?
Los metadatos administrados son una característica de SharePoint que permite a los usuarios crear y administrar un vocabulario controlado de términos para organizar y categorizar contenido. Las columnas de sitio en SharePoint proporcionan una forma reutilizable de almacenar metadatos y se pueden usar para definir la estructura de listas y tipos de contenido. En este artículo, exploraremos cómo usar PowerShell para crear una columna de sitio de metadatos administrados en SharePoint.
La columna Metadatos administrados en SharePoint Online usa el conjunto de términos del almacén de términos como origen de sus valores permitidos. El conjunto de términos define un conjunto de valores. Por ejemplo, "Regiones" es un conjunto de términos y "Asia" es un término. Por lo tanto, cuando el conjunto de términos "regiones" se utiliza como fuente para una columna de sitio de metadatos administrados, el término "Asia" puede ser su valor. A continuación se explica cómo agregar una columna de sitio de metadatos administrados a la lista de SharePoint Online.
- Vaya a su sitio de SharePoint Online y navegue hasta la configuración del sitio >> Columnas del sitio
- Haga clic en el enlace "Crear" en la parte superior de la página.
Proporcione la columna Nombre de su sitio, especifique el tipo de campo como "Metadatos administrados"
-
Desplácese hacia abajo y seleccione el conjunto de términos apropiado del almacén de términos.
- Complete otros valores opcionales y haga clic en "Aceptar" para crear la columna del sitio de metadatos administrados en SharePoint Online.
PowerShell para crear una columna de sitio de metadatos administrados en SharePoint Online
A continuación se explica cómo crear una columna de metadatos administrados en SharePoint Online:
#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"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"
#Custom function to add Managed Metadata Site Column
Function Add-SPOManagedMetadataSiteColumn()
{
param
(
[Parameter(Mandatory=$true)] [string] $SiteURL,
[Parameter(Mandatory=$true)] [string] $ColumnName,
[Parameter(Mandatory=$true)] [string] $DisplayName,
[Parameter(Mandatory=$false)] [string] $Description = [string]::Empty,
[Parameter(Mandatory=$false)] [string] $IsRequired = $False,
[Parameter(Mandatory=$false)] [string] $EnforceUniqueValues = $False,
[Parameter(Mandatory=$true)] [string] $ColumnGroup,
[Parameter(Mandatory=$true)] [string] $TermGroupName,
[Parameter(Mandatory=$true)] [string] $TermSetName
)
#Generate new GUID for Field ID
$FieldID = ([GUID]::NewGuid()).GUID
Try {
$Cred= Get-Credential
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Get all Site columns from the site
$Fields = $Ctx.web.Fields
$Ctx.Load($Fields)
$Ctx.executeQuery()
#Check if the column name exists
$NewField = $Fields | where {$_.Title -eq $DisplayName -or $_.InternalName -eq $ColumnName}
if($NewField -ne $NULL)
{
Write-host "Site Column $ColumnName already exists!" -f Yellow
}
else
{
#Create Managed Metadata Column
$FieldSchema = "<Field Type='TaxonomyFieldType' ID='{$FieldID}' DisplayName='$DisplayName' Name='$ColumnName' Description='$Description' Required='$IsRequired' EnforceUniqueValues='$EnforceUniqueValues' Group='$ColumnGroup'/>"
$NewField = $Fields.AddFieldAsXml($FieldSchema,$True,[Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldInternalNameHint)
$Ctx.ExecuteQuery()
Write-host "Site Column Created Successfully!" -ForegroundColor Green
#Get the Termset to Bind
$TaxonomySession=[Microsoft.SharePoint.Client.Taxonomy.TaxonomySession]::GetTaxonomySession($Ctx)
$TermStore =$TaxonomySession.GetDefaultSiteCollectionTermStore()
$Ctx.Load($TaxonomySession)
$Ctx.Load($TermStore)
$Ctx.ExecuteQuery()
#Get the Term Group
$TermGroup=$TermStore.Groups.GetByName($TermGroupName)
#Get the term set
$TermSet = $TermGroup.TermSets.GetByName($TermSetName)
$Ctx.Load($TermSet)
$Ctx.ExecuteQuery()
#Bind Managed Metadata Termset to the column
$TaxField = [Microsoft.SharePoint.Client.ClientContext].GetMethod("CastTo").MakeGenericMethod([Microsoft.SharePoint.Client.Taxonomy.TaxonomyField]).Invoke($Ctx, $NewField)
$TaxField.SspId = $TermStore.Id
$TaxField.TermSetId = $TermSet.Id
$TaxField.Update()
$Ctx.ExecuteQuery()
Write-host "Site Column Binded to the Termset Successfully!" -ForegroundColor Green
}
}
Catch {
write-host -f Red "Error Creating Site Column!" $_.Exception.Message
}
}
#Define value for parameters
$SiteURL="https://Crescent.sharepoint.com"
$ColumnName="ProjectRegion"
$DisplayName="Project Regions"
$ColumnGroup="Crescent Projects"
$TermGroupName="Deals Pipeline"
$TermSetName="Regions"
#Call the function to create Managed Metadata Site Column
Add-SPOManagedMetadataSiteColumn -SiteURL $SiteURL -ColumnName $ColumnName -DisplayName $DisplayName -ColumnGroup $ColumnGroup -TermGroupName $TermGroupName -TermSetName $TermSetName
Esta secuencia de comandos crea una nueva columna de sitio, "regiones del proyecto", y se asigna a un conjunto de términos "regiones" en el grupo "ofertas" en el almacén de términos.
PnP PowerShell para agregar una columna de sitio de metadatos administrados en SharePoint Online
A continuación se explica cómo agregar un campo de metadatos administrado con PnP PowerShell:
#Parameter
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Create a Managed Metadata column from "Regions" term set in "Deals Pipeline" Group
Add-PnPTaxonomyField -DisplayName "Region" -InternalName "Region" -TermSetPath "Deals Pipeline|Regions"
Terminando
En conclusión, crear columnas de sitio de metadatos administrados en SharePoint es una forma efectiva de almacenar y administrar metadatos de manera consistente y controlada. Usar PowerShell para crear estas columnas del sitio es un método rápido y eficiente que ayuda a agilizar el proceso y evitar errores manuales.

