Skip to content

Instantly share code, notes, and snippets.

@AsishP
Created April 22, 2018 10:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AsishP/480de60cac5700a1d5a7292bd3168f78 to your computer and use it in GitHub Desktop.
Save AsishP/480de60cac5700a1d5a7292bd3168f78 to your computer and use it in GitHub Desktop.
foreach($item in $sitesdata)
{
Write-Host "Started Traversing Site " $item.Url -ForegroundColor Yellow
Connect-PnPOnline -siteURL $item.Url
$site = Get-PnPSite
if($site.Url -eq $item.Url)
{
$lists = Get-PnPList
Write-Host "Found " $lists.Count " Lists. Processing.. Please wait.."
foreach($list in $lists)
{
$taxonomyfields = Get-PnPField -List $list | Where-Object {$_.TypeAsString -eq "TaxonomyFieldType"}
if($taxonomyfields.Count -gt 0)
{
foreach($field in $taxonomyfields)
{
$xml =[XML]$field.SchemaXml
$TermSetId = ($xml | Select-Xml "//Name[text()='TermSetId']/following-sibling::Value/text()").Node.Value
$TermId = ($xml | Select-Xml "//Name[text()='AnchorId']/following-sibling::Value/text()").Node.Value
$filterData = $taxonomydata | Where-Object {$_.TermsetID -eq $TermSetId -and (($_.Level1TermId -eq $TermId) -or ($_.Level2TermId -eq $TermId) -or ($_.Level3TermId -eq $TermId))}
$GroupId = $filterData[0].GroupID;
$GroupName = $filterData[0].Group;
$TermsetName = $filterData[0].TermSet;
$Level1TermName = $filterData[0].Level1Term;
$obj = New-Object PSObject;
$obj | Add-Member NoteProperty ID $($count);
$obj | Add-Member NoteProperty SiteUrl $($item.Url);
$obj | Add-Member NoteProperty TaxonomyPresence "Present";
$obj | Add-Member NoteProperty ListName $($list.Title);
$obj | Add-Member NoteProperty FieldName $($field.Title);
$obj | Add-Member NoteProperty FieldInternalName $($field.InternalName);
$obj | Add-Member NoteProperty GroupId $($GroupId);
$obj | Add-Member NoteProperty GroupName $($GroupName);
$obj | Add-Member NoteProperty TermSetId $($TermSetId);
$obj | Add-Member NoteProperty TermSetName $($TermsetName);
$obj | Add-Member NoteProperty TermId $($TermId);
$obj | Add-Member NoteProperty TermName $($Level1TermName);
$results += $obj;
}
}
else
{
$obj = New-Object PSObject;
$obj | Add-Member NoteProperty ID $($count);
$obj | Add-Member NoteProperty SiteUrl $($item.Url);
$obj | Add-Member NoteProperty TaxonomyPresence "No Taxonomy fields found";
$obj | Add-Member NoteProperty ListName $($list.Title);
$obj | Add-Member NoteProperty FieldName "";
$obj | Add-Member NoteProperty FieldInternalName "";
$obj | Add-Member NoteProperty GroupId "";
$obj | Add-Member NoteProperty GroupName "";
$obj | Add-Member NoteProperty TermSetId "";
$obj | Add-Member NoteProperty TermSetName "";
$obj | Add-Member NoteProperty TermId "";
$obj | Add-Member NoteProperty TermName "";
$results += $obj;
}
}
}
else
{
$obj = New-Object PSObject;
$obj | Add-Member NoteProperty ID $($count);
$obj | Add-Member NoteProperty SiteUrl $($item.Url);
$obj | Add-Member NoteProperty TaxonomyPresence "Site is not accessible";
$obj | Add-Member NoteProperty ListName "";
$obj | Add-Member NoteProperty FieldName "";
$obj | Add-Member NoteProperty FieldInternalName "";
$obj | Add-Member NoteProperty GroupId "";
$obj | Add-Member NoteProperty GroupName "";
$obj | Add-Member NoteProperty TermSetId "";
$obj | Add-Member NoteProperty TermSetName "";
$obj | Add-Member NoteProperty TermId "";
$obj | Add-Member NoteProperty TermName "";
$results += $obj;
}
$count++;
Write-Host "Processing Finished .."
}
if($results.Count -gt 0)
{
Write-Host "Creating Report" -ForegroundColor Red
$fileName = "SiteCollectionTaxonomyFields.csv"
Write-Host "Exporting file " $fileName
$results | Export-Csv $fileName -NoTypeInformation
Write-Host "Creating Report Completed" -ForegroundColor Green
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment