Categories

If you are looking for a way to import user photos to Exchange 0365 in bulk through SharePoint site, you can use the following custom action:


The logic behind is to create a photo gallery where you will upload the photos, and you could make the filename of each image be the username of that particular user.


$myUrlSite = "https://<Domain>.sharepoint.com"
  $format = ".jpeg"

  #retrieve the current ps credential object from the sharepoint connection
  $cred = Get-PnPConnection

  #here you have to change the site context because we use the admin site when we open a Sharepoint connection

  Connect-PnPOnline -Url $myUrlSite -Credentials ($cred.PSCredential)
  $photos = @(Get-PnPFolderItem -FolderSiteRelativeUrl "photos" -ItemType File)
  foreach( $photo in $photos){
    if( $photo.Name.Contains("@<Domain name>.com")){
      $memoryStream = New-Object System.IO.MemoryStream
      $streamResult = $photo.OpenBinaryStream()
      Invoke-PnPQuery
      $streamResult.Value.CopyTo( $memoryStream)
      $imageArray = $memoryStream.ToArray()
      Set-UserPhoto -Identity $photo.Name.Replace($format, '') -PictureData $imageArray -Confirm: $false
    }
  }