批量上传用户头像

时间:2021-05-31 20:23:49

【客户需求】

客户环境是SharePoint 2016

客户希望批量把本地用户头像图片上传到SharePoint网站对应的用户头像上

【解决办法】

方法一:

发头像批量上传到AD中,再通过SharePoint2016 的MIM同期头像信息。

方法二:

使用PowerShell手动上传头像

1.将头像图片放到SharePoint服务器上

批量上传用户头像

2.在该服务器的IIS里创建web site用于http访问头像

批量上传用户头像

3.创建CSV文件,写入头像图片与ad用户关系

批量上传用户头像

4.执行以下powershell

[void][system.reflection.assembly]::loadwithpartialname("Microsoft.Office.Server.UserProfiles");
$csvFile = "C:\1\photo.csv";
$MySiteUrl = "http://sp2016-3/my";
$site = Get-SPSite $MySiteUrl;
$context = Get-SPServiceContext $site;
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context);
$csv = import-csv -path $csvFile;
foreach ($line in $csv)
{
$user_name = "contoso\" + $line.domain_user_name;
$up = $profileManager.GetUserProfile($user_name);
if($up)
{
$up["PictureURL"].Value = $line.emp_id;
$up.Commit();
write-host $user_name,"--->",$up.DisplayName,"--->",$line.emp_id;
$up = $null;
}
}

 批量上传用户头像

 

 

 5.执行下面的PowerShell,用于将上传的头像创建3个不同尺寸头像,优化显现。

 Update-SPProfilePhotoStore -MySiteHostLocation http://sp2016-3/my

 

6.执行后查看效果

 批量上传用户头像

批量上传用户头像