SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to change catalog settings of Pages list to make it act like a Catalog by using powershell. It includes adding Title as "Catalog Item URL Fields" and choosing a Term Set for "Navigation Hierarchy".

share|improve this question

I think this should help you.

http://blogs.if-blueprint.de/petbo/2013/08/20/how-to-enable-a-list-as-a-catalog-in-sharepoint-2013-with-powershell/

share|improve this answer
1  
Hi @PetBo and welcome to our site. When you post answers please remember to mention when you promote your own blog. The community tends to vote down overt self-promotion and flag it as spam. Post good, relevant answers, and if some (but not all) happen to be about your product or website, that’s okay. However, you must disclose your affiliation in your answers. Read about expected behaviour. Also remember that "link only answers" is of less use for our site, since links tend to die. Add a good summary of your answer and then link. – Anders Rask Aug 20 '13 at 8:32

I know it's an old post but I had the same issue and I think it's a good thing to share my solution with you.

I've built a function which does the job:

function enableCatalog($arrayOfLists)
{
    foreach($list in $arrayOfLists)
    {
        write-host "Enabling catalog on list " $list -foregroundcolor Yellow
        $list.IndexedRootFolderPropertyKeys.Add("PublishingCatalogSettings")
        $list.IndexedRootFolderPropertyKeys.Add("IsPublishingCatalog")

        #Break permission inheritance
        $list.BreakRoleInheritance($true,$true)

        #Enable anonymous to the catalog
        $list.AllowEveryoneViewItems = $true
        $list.AnonymousPermMask64 ="Open, OpenItems, ViewListItems, ViewVersions, ViewFormPages, ViewPages, UseClientIntegration"

        $rootFolder = $list.RootFolder
        $rootFolder.Properties.Add("IsPublishingCatalog", "True") #Activate catalog

        $rootFolder.Update()
        $list.Update()
        write-host "Catalog successfully enabled on " $list -foregroundcolor Green
    }
}

Usage:

$lists = <an array of list objects>

enableCatalog $lists

$web.Dispose()
$site.Dispose()

As far as I've tested it, it works fine.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.