2014-09-04

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.

Code

# ----------------------------------------------------------------------------- 
# Script : SharePoint Farm 2010 User Property Update.
# Author : Chendrayan Venkatesan 
# Purpose : To update user profile property value for all. 
# Custom : Any User Profile Property can be changed in bulk. 
# ----------------------------------------------------------------------------- 
 
#. Disclaimer 
#. Please do not use this script if you have property mapped with AD attribute 
 
#Set up default variables 
$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 Code

Update User Profile Property Values for All Users

About the author 

Chendrayan