문제

SharePoint 2010에서 사용자 사진을 MySite로 가져 오는 데 큰 문제가 있습니다.

SharePoint 2010 Standard Edition이 설치되어 있습니다.모든 사용자는 MySite로 가져 왔으며 MySite에서 모든 사용자 그림을 볼 수 있으며 검색 페이지에서도 검색 할 수 있습니다.그러나 서비스 팩 2를 설치하기 전에 며칠 전 2. 새로운 서비스 팩 이후 UPS 서비스가 작동을 멈췄으므로 다시 프로비저닝해야합니다.그러나 그 후에 우리는 모든 사용자가 MySite에서 프로필 사진을 볼 수 없었습니다.

나는이 링크에서 설명한 것처럼 (SP2010 FEB2012 CU에 표시되지 않는 사용자 프로필 그림 ) 그러나 불행히도, 나는 여전히 그림을 얻지 못한다.

편집 : 우리는 광고에서 사용자를 가져 오지 않았지만 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)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top