Friday, January 30, 2015

Getting site content types and site columns using PowerShell


Getting site content types and site columns using PowerShell:

Add-PSSnapin Microsoft.SharePoint.PowerShell

## Variables

$WEB_APPLICATION_URL = "http://siteURL"
$CT_FIELDS_FILE_PATH = "c:\2013_CTs_And_Fields.csv"

## Initialization
echo "Initializing variables"

'"Site URL","Content Type","Field Name"' | Out-File $CT_FIELDS_FILE_PATH;

echo "Entering web application $WEB_APPLICATION_URL"
$webApplication = Get-SPWebApplication -identity $WEB_APPLICATION_URL
ForEach ($siteCollection in $webApplication.Sites)
{
    ForEach($subSite in $siteCollection.AllWebs)
    {
        $subsiteUrl = $subsite.Url;
        echo "Extracting info from $subSiteUrl";
        $contentTypes = $subSite.ContentTypes;
        ForEach ($contentType in $contentTypes)
        {
            ForEach ($field in $contentType.Fields)
            {

                '"'+ $subSiteUrl +  '","'  + $contentType.Name + '","' + $field.Title + '","' | Out-File $CT_FIELDS_FILE_PATH -Append;
            }
        }
    }
}
echo "Finished.....";


The script output is a set of three CSV files:
  1. Mapping between SiteURL, content types and fields

No comments:

Post a Comment