PowerShell for Admins

Use PnP PowerShell to add ContentType for your SharePoint site

2 min read
Share:

You can achieve the task by using SharePoint GUI. However, if your sites collection has tens of hundreds sites and each site has more than one document library, it will become a nightmare for a SharePoint administrator to do the task by using GUI.

Luckily, there is PnP Powershell which can help us achieve the goal.

The steps will be like below:

#Step1: export your login credential to a secure file on your local machine

get-credential|export-clixml -path c:\safe\mycredential.txt

#Step2: import your credential to Powershell

$cred=import-clixml -path c:\safe\mycredential.txt

#Step3: connect PnP online

connect-pnponline -url “your site url here” -credentials $cred

#Step4: get all sub sites of your site collection

$subsites=get-pnpsubwebs -recurse|select-url

#Step5: Use for each loop to loop through each subsites and add the content type into document libraries in each sub site.

foreach ($site in $subsites) {

connect-pnponline -url $site.url -credentials $cred

$docids=get-pnplist|where-object {$_.basetemplate -eq 101 -and $_title -ine “Site Assets”}|select id

foreach ($docid in $docids) {

   add-pnpcontenttypetolist -list $docid.id -contenttype "content type name of your choice for default one" -DefaultContentType


   add-pnpcontenttypetolist -list $docid.id -contenttype "2nd content type"


      } 

}

To remove the contenttype from your sharepoint libraries, you need to use remove-pnpcontenttypefromlist command.

See the following code:

Foreach($site in $subsites) {

connect-pnponline -url $sites.url -credentials $cred

$docids=get-pnplist|where-object {$.basetemplate -eq 101 -and $.title -ine “Site Assets”}|select id

foreach ($docid in $docids) {

remove-pnpcontenttypefromlist -list $docid.id -contenttype “the name of the content type you want to remove”}

   }

}

Related Articles

Sep 15, 2023

PowerShell Escape Room

PowerShell Escape Room by Michiel Hamers by Michiel Hamers https://about.me/michielhamers/ Why on earth you want to create an …

Read more