# Using powershell code, update the user profile base on the XML file.
# Date: 2015-01-29
# Update New User Property$snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
if ($snapin -eq $null)
{ Write-Host "Loading SharePoint Powershell Snapin..." Add-PSSnapin "Microsoft.SharePoint.Powershell" Write-Host "SharePoint Powershell Snapin Loaded"
}
# Get XML Configuration file
[xml]$xmlData=Get-Content "C:\xxxx\xxxx.xml" -Encoding UTF8# Get Connection to MySite$MySite = Get-SPSite -Identity "http://xxxxxx"# Get Context
$context = Get-SPServiceContext($MySite)# Get UserProfileManager Object
$ProfileMngr = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)# Get All User Profiles
#$profiles = $ProfileMngr.GetEnumerator()$xmlData.Users.UserName | ForEach-Object{if ($ProfileMngr.UserExists($_.Name) -eq $false){$ProfileMngr.CreateUserProfile($_.Name)}$userprofile = $ProfileMngr.GetUserProfile($_.Name)$userprofile["DP-JobNo"].value = $_.JobNo.Name$userprofile["PreferredName"].value = $_.PreferredName.Name$userprofile["DP-CompanyCode"].value = $_.CompanyCode.Name$userprofile["DP-Company"].value = $_.Company.Name$userprofile["DP-Department"].value = $_.Department.Name$userprofile["DP-ReportToLeader"].value = $_.ReportTo.Name$userprofile["DP-CostCentre"].value = $_.CostCentre.Name$userprofile.Commit()Write-Host -f Yellow $_.Name "Done"}
<User Name="xx\xx"><Chinese Name="xxx"/><Title Name=""/><CostCenter Name="xxx"/><Report Name="xxxxx"/><Company Name="xxxx"/><Bank Name="xxxxxx"/><Internal Name=""/><Sap Name=""/><IsSales Name="False"/><IsService Name="False"/>
</User>