Modify User Profile Properties in SharePoint 2010 using PowerShell

In this article we will be seeing how to modify User Profile Properties in SharePoint 2010 using PowerShell.

Modify User Profile Properties in SharePoint 2010

We can to modify User Profile Properties in SharePoint 2010 from Central Administration.

  • Go to Central Administration => Application Management => Manage Service Applications => User Profile Service Application.





  • Click on Manage User Properties




  • Select the property and then click on Edit to modify the property.








Automation: Modify User Profile Properties in SharePoint 2010 using PowerShell

Here we will be seeing how to modify the following User Profile Properties in SharePoint 2010 using PowerShell.

Steps Involved:

  1. Create the input XML file which contains the inputs for modifying User Profile properties.

  2. Create ps1 file which contains the script for modifying User Profile properties.


ModifyUserProfileProperties.xml

<?xml version="1.0" encoding="utf-8" ?> <ModifyUserProfileProperties>   <URL>http://serverName:8080/</URL>   <Property Name="Sample1" DisplayName="Sample1 Modified" Description="Sample1 custom user property modified" IsSearchable="$true" IsAlias="$false"></Property>   <Property Name="Sample2" DisplayName="Sample2 Modified" Description="Sample1 custom user property modified" IsSearchable="$true" IsAlias="$false"></Property>   <Property Name="Sample3" DisplayName="Sample3 Modified" Description="Sample1 custom user property modified" IsSearchable="$true" IsAlias="$false"></Property> </ModifyUserProfileProperties>

ModifyUserProfileProperties.ps1

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

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

#----------------Modify the User Profile properties--------------------------------------------- function ModifyUserProfileProperties() {

$site = Get-SPSite $xmlData.ModifyUserProfileProperties.URL $context = Get-SPServiceContext($site) $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.ModifyUserProfileProperties.Property | ForEach-Object{ $property = $pspm.GetPropertyByName($_.Name) if($property -ne $null)             { $DisplayName=$_.DisplayName $Description=$_.Description   $IsSearchable=$_.IsSearchable $IsAlias=$_.IsAlias $property.CoreProperty.DisplayName=$DisplayName $property.CoreProperty.Description=$Description $property.CoreProperty.IsSearchable = $IsSearchable $property.CoreProperty.IsAlias = $IsAlias $property.CoreProperty.Commit();         $property.Commit() write-host -f green $_.Name property is modified successfully             } else             { write-host -f yellow $_.Name property does not exists             }       } }

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

ModifyUserProfileProperties

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\ModifyUserProfileProperties.ps1


Output:


And in the Central Administration you could see the property modified