Forum Discussion
Can't turn off "Visible on New Button" for Content Type using PnP PowerShell
Hi,
I'm having trouble turning off the "Visible on New Button" option for a Content Type on a Document Library. I'm trying to use the "UniqueContentTypeOrder" to do that.
So far, it's not taking -- any thoughts? Snippet of script below.
Many thanks.
$doclib = Get-PnPList -Identity "Quotes" -Includes RootFolder.UniqueContentTypeOrder
$lct = $doclib.ContentTypes
$ctx.Load($lct)
$ctx.ExecuteQuery()
$rootFolder = $doclib.RootFolder
$lucto = $doclib.ContentTypes | ?{$_.Name -ne "<Content Type I'm Trying to Hide>"}
$list = New-Object 'System.Collections.Generic.List[Microsoft.SharePoint.Client.ContentTypeId]'
foreach ($i in $lucto) {
$id = $i.Id
$list.Add($id)
}
$rootFolder.UniqueContentTypeOrder = $list
$rootFolder.Update()
$doclib.Update()4 Replies
- nfsg20Copper Contributor
Darren Parkinson Try Invoke-PnPQuery, you dont need to use ctx at all.
Working Code for me (I'm using the opposite approach, telling the function what content type I want to have in the "New" menu):
function SetVisibleContentType($listName, $ctName) { $ct = Get-PnPContentType -List $listName -Identity $ctName $list = Get-PnPList -Identity $listName -Includes RootFolder.UniqueContentTypeOrder $idList = New-Object "System.Collections.Generic.List[Microsoft.SharePoint.Client.ContentTypeId]" $idList.Add($ct.Id) $list.RootFolder.UniqueContentTypeOrder = $idList $list.RootFolder.Update() Invoke-PnPQuery }If you want to show more than one content type, just pass a string-array of content type names, or change the logic to show all but the provided conten type name.
- Darren ParkinsonBrass ContributorThanks. Yeah, I tried that, but it errors (as is very common!) :( Not having much fun with SharePoint today
I don't think that there is an option for this in PnP PowerShell.
- Suleyman AyazalpCopper Contributor
Shouldn't you have
$ctx.ExecuteQuery()
at the end?
Haven't done this in powershell but the used method is the right one.