Informe de uso de columnas de metadatos administrados en SharePoint mediante PowerShell
Requisito: Buscar el uso de todas las columnas de metadatos administrados en el entorno de SharePoint.
PowerShell para encontrar el uso de columnas de metadatos administrados:
Aquí está el script de PowerShell para buscar todas las columnas de metadatos administrados en una colección de sitios de SharePoint.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SiteCollURL="https://portal.crescent.com"
$ReportOutput="c:\MMS-Columns.csv"
$WebsColl = (Get-SPSite $SiteCollURL).AllWebs
#Array to hold Results
$ResultColl = @()
#Loop through each site, List and Fields
Foreach($web in $WebsColl)
{
Write-host "Scanning Web:"$Web.URL
Foreach($list in $web.Lists)
{
Foreach($Field in $list.Fields)
{
if($field.GetType().Name -eq "TaxonomyField")
{
$Result = New-Object PSObject
$Result | Add-Member -type NoteProperty -name "List Name" -value $List.Title
$Result | Add-Member -type NoteProperty -name "URL" -value "$($List.ParentWeb.Url)/$($List.RootFolder.Url)"
$Result | Add-Member -type NoteProperty -name "Field Name" -value $Field.Title
$ResultColl += $Result
}
}
}
}
#Export Results to a CSV File
$ResultColl | Export-csv $ReportOutput -notypeinformation
Write-Host "Managed Metadata columns usage Report has been Generated!" -f Green
Este script escanea todas y cada una de las listas de la colección de sitios determinada y genera un informe en CSV.
PowerShell para encontrar todos los términos de metadatos administrados en uso:
Ahora la siguiente parte. ¿Entiende qué términos se utilizan en estas columnas de MMS? Sus valores:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SiteCollURL="https://portal.crescent.com"
$ReportOutput="c:\MMS-Terms-Usage.csv"
$WebsColl = (Get-SPSite $SiteCollURL).AllWebs
#Array to hold Results
$ResultColl = @()
#Loop through each site, List and Fields
Foreach($web in $WebsColl)
{
Write-host "Scanning Web:"$Web.URL
Foreach($list in $web.Lists)
{
#Get all Managed metadata fields
Foreach($Field in $list.Fields | where {$_.GetType().Name -eq "TaxonomyField"})
{
Foreach ($item in $list.Items)
{
#Get All values of MMS field
$MMSFieldValueColl = $item[$Field.Title] #-as [Microsoft.SharePoint.Taxonomy.TaxonomyFieldValueCollection]
#concatenate each term in the collection
$MMSFieldTerms=[string]::Empty
Foreach ($MMSFieldValue in $MMSFieldValueColl)
{
if($MMSFieldValue.label -ne $null)
{
$MMSFieldTerms+=$MMSFieldValue.label+";"
}
}
#Collect the result
if($MMSFieldTerms -ne '')
{
$Result = New-Object PSObject
$Result | Add-Member -type NoteProperty -name "MMs Column Name" -value $Field.Title
$Result | Add-Member -type NoteProperty -name "MMS Column Value" -value $MMSFieldTerms
#Get the URL of the Item
$ItemURL= $Item.ParentList.ParentWeb.Site.MakeFullUrl($item.ParentList.DefaultDisplayFormUrl)
$ItemURL=$ItemURL+"?ID=$($Item.ID)"
$Result | Add-Member -type NoteProperty -name "Item URL" -value $ItemURL
$Result | Add-Member -type NoteProperty -name "List Name" -value $List.Title
$Result | Add-Member -type NoteProperty -name "List URL" -value "$($List.ParentWeb.Url)/$($List.RootFolder.Url)"
$ResultColl += $Result
}
}
}
}
}
#Export Results to a CSV File
$ResultColl | Export-csv $ReportOutput -notypeinformation
Write-Host "Managed Metadata columns usage Report has been Generated!" -f Green
