If you are working with SharePoint on-premises, you may encounter the SharePoint wrong display name issue, where the user’s name shown in the top-right corner of the page is incorrect, even though Active Directory and the User Profile Service are up to date.
This is a common issue, especially in organizations that include the role in the Display Name. For example, David Levi may now be the company’s CEO, but SharePoint can still display his previous role as Sales Director.
Why SharePoint shows the wrong display name
At the first user connection SharePoint picks the user information from the Active Directory or from the User Profile if properly set.
But then SharePoint stores the user info in the user information list on each site.
The user information list stores the Display Name used throughout the site, including:
- Top-right corner welcome bar
- Created By / Modified By fields
- Person or Group fields in lists
Even if AD and UPS are correct, the UIL does not automatically update. SharePoint reads this local copy, which is why the old name appears.
This is particularly critical in organizations where roles are included in the name, because a change in role may not propagate automatically.
How to fix the SharePoint wrong display name
The correct approach is to update the User Information List for all sites, ensuring the top-right display name is correct.
Using PowerShell and User Profile Service
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue# Loop through all site collections
Get-SPSite -Limit All | ForEach-Object { $site = $_
$serviceContext = Get-SPServiceContext $site
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($serviceContext)
foreach ($web in $site.AllWebs)
{
Write-Host "Processing web: $($web.Url)"
foreach ($user in $web.SiteUsers | Where-Object {$_.LoginName -like "*\*" -and $_.IsDomainGroup -eq $false})
{
try
{
if ($profileManager.UserExists($user.LoginName))
{
$profile = $profileManager.GetUserProfile($user.LoginName)
$displayName = $profile["PreferredName"].Value if ($displayName -and $displayName -ne $user.Name)
{
# Ensure user exists in the site
$web.EnsureUser($user.LoginName) | Out-Null # Update the Display Name
$user.Name = $displayName
$user.Update()
Write-Host "Updated top-right display name: $displayName"
}
}
}
catch
{
Write-Host "Error updating user: $($user.LoginName)"
}
} $web.Dispose()
} $site.Dispose()
}
Notes:
- This approach ensures the top-right Display Name is correct.
- It handles names with apostrophes or quotes.
- No need to query Active Directory directly, it uses User Profile Service as the source.
- Particularly important for organizations that include roles in the Display Name, this avoids showing outdated role titles.
Key Takeaways
- Even with AD and User Profile Service up to date, the top-right display name can remain outdated.
- Organizations that use roles in the Display Name are most affected.
- Updating the User Information List is the only reliable fix.
- This method ensures historical data in lists and workflows is preserved while correcting the name users see when logged in.
This simple PowerShell approach is critical for any SharePoint on-premises environment where accurate display names are required for usability, reporting and consistency, especially when roles change or users are renamed.

