Tuesday, August 12, 2014

Provision SharePoint ClientWebPart custom properties through PowerShell

Currently developing on projects where a lot of SharePoint provider hosted apps are involved. App parts with custom properties are used to integrate them on SP webpages and I needed to provision those properties through PowerShell.
Not really rocket science, but couldn't find anything on the web and needed to decompile to find the solution, so decided to drop it here. The ClientWebPartProperty does the job:

$webpart = New-Object Microsoft.SharePoint.WebPartPages.ClientWebPart
$newProperty = New-Object Microsoft.SharePoint.WebPartPages.ClientWebPartProperty
$newProperty.Name = "nameoftheproperty"
$newProperty.Value = "valueoftheproperty"
$webpart.Properties.Add($newProperty)

Don't forget the set the FeatureId, WebPartName and ProductWebId properties as explained here.