Фото пользователя не показано в Mysite SharePoint 2010
Вопрос
У меня огромная проблема с импорт пользователей фото в mysite в SharePoint 2010.
У меня установлено стандартное издание SharePoint 2010.Все пользователи были импортированы в MySite, и мы могли видеть всех фотографий пользователей в MySite, а также на странице поиска.Но за несколько дней до того, как мы установили пакет обновления 2. После нового пакета службы службы UPS перестал работать, поэтому нам нужно повторно предоставлено UPS.Но после этого мы не могли видеть фотографии профилей пользователей в MySite.
Я следовал как описать в этой ссылке, (Изображение профиля пользователя не отображается в SP2010 Feb2012 CU ) Но к сожалению, у меня все еще нет фотографий.
Редактировать: мы не импортировали пользователей от AD, но добавлены непосредственно в mysite.
Решение
If you have recreated the whole service application for User Profiles, did you rebind the User Profile Property PictureURL
to the AD property thumbnailPhoto
? I have made the mistake to miss this one in the past.
I found a great step by step guide here that outlines these three steps:
- Create an import PictureURL mapping
- Perform a full profile synchronization
- Run the Update-SPProfilePhotoStore PowerShell command
After updated info about not using AD to sync pictures
Have you checked out this post? http://blog.bugrapostaci.com/2012/07/23/after-restoring-sharepoint-profile-databases-some-of-users-pictures-are-not-shown/
Basically a script similar to this (from the link):
Param (
[parameter(Mandatory=$true)][string]$MySiteUrl,
[parameter(Mandatory=$false)][Switch]$Update
)
$mySiteHostSite = Get-SPSite $MySiteUrl
$mySiteHostWeb = $mySiteHostSite.OpenWeb()
$context = Get-SPServiceContext $mySiteHostSite
$spPhotosFolder = $mySiteHostWeb.GetFolder("User Photos")
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
$AllProfiles = $ProfileManager.GetEnumerator()
foreach($profile in $AllProfiles)
{
$AccountName= $profile[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::AccountName].Value
if($profile["PictureURL"].Value -eq $null -or $profile["PictureURL"].Value -eq $null )
{
$checkUrl =$spPhotosFolder.url +"/" + "Profile Pictures" + "/" + $AccountName.Replace("\","_") + "_MThumb.jpg"
if($mySiteHostWeb.GetFile($checkURL).Exists)
{
if($Update)
{
$profile["PictureURL"].Value = $mySiteHostWeb.Url + "/" + $checkurl
$profile.Commit()
"Updated!!! " + $AccountName
$mySiteHostWeb.Url + "/" + $checkurl
}
else
{
"Updatable!!! " + $AccountName
}
}
else
{
"Missing !!! " + $AccountName
}
}
else
{
"OK! " + $AccountName + " " + $profile["PictureURL"].Value
}
}
$mySiteHostWeb.Dispose()
$mySiteHostSite.Dispose()
but please see the post for details about what you need to modify for your environment (like "User Photos" folder)