Create User Profile Section in SharePoint 2010

We can to create new custom section for User Profile in SharePoint 2010 from Central Administration.

Go to Central Administration - Application Management - Manage Service Applications - User Profile Service Application.

sharepoint 2010

Click on Manage User Properties

User Properties in sharepoint

Click on New Section link to create a new section for user profiles.

user profiles in sharepoint

sharepoint user profiles

Automation: Create User Profile Section in SharePoint 2010 using PowerShell

Here we will be seeing how to create new section for User Profile in SharePoint 2010 using PowerShell.

Steps Involved:

  1. Create the input XML file which contains the inputs for creating User Profile Section.

  2. Create ps1 file which contains the script for creating User Profile Section.

CreateUserProfileSection.xml

<?xml version="1.0" encoding="utf-8" ?>
<
UserProfileSection>
<
SiteURL>http://serverName:8080/</SiteURL>
<
Section Name="CustomSection11" DisplayName="CustomSection11" ></Section>
<
Section Name="CustomSection22" DisplayName="CustomSection22" ></Section>
<
Section Name="CustomSection33" DisplayName="CustomSection33" ></Section>
<
Section Name="CustomSection44" DisplayName="CustomSection44" ></Section>
</
UserProfileSection>

CreateUserProfileSection.ps1

#----------------Get the xml file---------------------------------------------------------------

[xml]$xmlData=Get-Content "C:\Users\Desktop\ContentSources\CreateUserProfileSection.xml"

#----------------Create new custom User Profile section---------------------------------------------
function CreateUserProfileSection()
{
$site = Get-SPSite $xmlData.UserProfileSection.SiteURL
$context = Get-SPServiceContext($site)
$upcm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileConfigManager($context);
$ppm = $upcm.ProfilePropertyManager
$cpm = $ppm.GetCoreProperties()
$ptpm = $ppm.GetProfileTypeProperties([Microsoft.Office.Server.UserProfiles.ProfileType]::User)
$psm = [Microsoft.Office.Server.UserProfiles.ProfileSubTypeManager]::Get($context)
$ps = $psm.GetProfileSubtype([Microsoft.Office.Server.UserProfiles.
ProfileSubtypeManager]::GetDefaultProfileName
[Microsoft.Office.Server.UserProfiles.ProfileType]::User))

$pspm = $ps.Properties
$xmlData.UserProfileSection.Section | ForEach-Object{
$property = $pspm.GetSectionByName($_.Name)
if($property -eq $null)
{
$Privacy=$_.Privacy
$PrivacyPolicy=$_.PrivacyPolicy
$coreProp = $cpm.Create($true)
$coreProp.Name = $_.Name
$coreProp.DisplayName = $_.DisplayName
$cpm.Add($coreProp)
write-host -f green $_.Name section is created successfully
}
else
{
write-host -f yellow $_.Name section already exists
}
}
}

#----------------Calling the function---------------------------------------------
CreateUserProfileSection

Run the Script:

  1. Go to Start.

  2. Click on All Programs.

  3. Click on Microsoft SharePoint 2010 Products and then click on SharePoint 2010 Management Shell.

  4. Run the C:\Users\Desktop\ContentSources\CreateUserProfileSection.ps1

Output:

sharepoint eith powershell

And in the Central Administration you could see the newly created custom sections for user profiles.

sharepoint user profiles