SharePoint: Update User Profile Property Values for All Users


This script can be used to update any user profile property value. In my case I used this for removing "No Title" in SharePoint 2010 Org Chart.

Environment

No Job Tile in AD Attributes. No Mapping in SharePoint 2010 UPA.

Scenario

Organization Chart shows "No Title". Functional Team requested not to add Job Title in AD. Alternatively Roles are used. No Roles should be used in ORG CHART.

Requirement

Remove "No Title" from ORG CHART. Do not update roles in ORG CHART. Do not update title in AD.

Considerations

Do not execute this script to update values if it is mapped in AD Do not try in production with out testing Please update the CSV file with NTName and with the field name as required The CSV file should have headers with NTName and desired field name (Use Internal Name) No CSV file available - Please create one as required.

PowerShell Script

$mySite = "mysitename" 

$upAttribute = "<Any User Profile Property Name>" 

 

#Get site objects and connect to User Profile Manager service

$site = Get-SPSite $mySiteUrl 

$context = Get-SPServiceContext $site 

$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context) 

 

#Create Lists from each item in CSV file

$csvData = Import-Csv -Path "Path of the CSV File" 

foreach ($line in $csvData) 

#Check to see if user profile exists

if ($profileManager.UserExists($line.NTName)) 

#Get user profile and change the value

$up = $profileManager.GetUserProfile($line.NTName) 

$up[$upAttribute].Value = $line.PropertyVal 

$up.Commit() 

else 

write-host "Profile for user"$line.NTName "cannot be found" 

 

#Dispose of site object

$site.Dispose()

Download Script

Gallery Link Enjoy PowerShell :)