Integrating Exchange Server 2013 and Skype for Business Server 2015 (Part 5)

by [Published on 26 Nov. 2015 / Last Updated on 26 Nov. 2015]

Configuring high-resolution photos in Exchange Server 2013 and Skype for Business Server.

If you would like to read the other parts of this article series please go to:

The user photo in collaboration tools such as Skype for Business and Exchange Server world (Outlook Web App/Outlook) enhances the end-user experience. Looking at how the communication flows nowadays among end-users, we will realize that we see pictures all the time. You see them when you are checking your e-mail in Outlook, receiving a new message, receiving an instant messaging and so forth.

In the previous versions of either Exchange/Skype for Business (especially during the OCS/Lync era) the solution could be summarized in adding the photo to the Active Directory attribute thumbnailPhoto through a third-party tool or PowerShell scripts. However, the limitation was the 100kb for the thumbnailPhoto attribute, which would give us a small picture (96 pixels by 96 pixels) and the quality as you can imagine not that good.

In the new wave of Unified Communications products (Exchange Server 2013, Lync Server 2013/Skype for Business Server), the administrator can take advantage of high-resolution photos because the photos can be stored in Exchange Server 2013 mailboxes (we will see that the photo is also resized and stored in Active Directory as part of the process).

As you may have concluded, since the photos are stored in Exchange Server 2013, this feature requires that the end-user mailbox be in an Exchange Server 2013 otherwise the information stored in Active Directory is used.

Before going in detail about the configuration changes on the server side, our first stop is to understand and visualize how the end-user can change their own picture using any of the existent interfaces (Outlook Web App, Outlook 2013 and/or Skype for Business Client). The result of this exercise is to understand that no matter which tool is used, the final page will be Exchange where the user can upload a photo.

In order to get to the configuration pages listed in Figure 01, use the following instructions. Using Outlook 2013, just click on File and under Info tab the option to change the picture will be displayed, click on Change. Using Skype for Business client, click on Options on the initial window, and then click on My picture. Using Outlook Web App, click on Settings icon, located on the upper-right corner and then Options, in the new page just click on Edit Information. The results will be the page listed on the right side of Figure 01.

Image
Figure 01

Now that the user can manage their own photo, we need to go over what happens behind the scenes when a photo is uploaded. When any of the steps described in the previous picture are used, a set of 3 pictures will be created as part of the process: a 48 pixels by 48 pixels that will be stored in the user Active Directory attribute thumbnailPhoto (Figure 02), a 96 pixels by 96 pixels, and a 648 pixels by 648 pixels. The last two sizes will be used within Outlook 2013, Skype for Business client and Outlook Web App.

Image
Figure 02

The high-resolution photo is stored in Exchange Server as an item (IPM.UserPhoto.Preview or IPM.UserPhoto), and this information can be seen using EWSEditor utility (Figure 03). In order to support the different resolutions, the high-resolution photo uses an internal format.

Image
Figure 03

As you already know by now, there is no free lunch on this world, and having high-resolution photos means that more resources will be used, such as storage in Exchange and network bandwidth to access that information.

How can we check any given user photo? Since the information is in Exchange Server we can access them through web services, and we can check each one of the sizes generated by the process using these URLs listed below, and in Figure 04 we can see the our illustrious Number6 photo using 648x648.

  • For 648x648 photo
    https://<exchange-server-fqdn>/ews/Exchange.asmx/s/GetUserPhoto?email=<e-mail-address>&size=HR648x648
  • For 96x96 photo
    https://<exchange-server-fqdn>/ews/Exchange.asmx/s/GetUserPhoto?email=<e-mail-address>&size=HR96x96
  • For 48x48 photo
    https://<exchange-server-fqdn>/ews/Exchange.asmx/s/GetUserPhoto?email=<e-mail-address>&size=HR648x648

Image
Figure 04

Managing Users photos from a central location…

In the previous section, we went over the process to upload a photo from the end-user perspective. However, the administrator may want to do that from a central location and that can be achieved using Exchange Management Shell. The first step is to have the photo in a PowerShell variable (first cmdlet) and the second step is to upload the photo to the user’s mailbox (second cmdlet), the third cmdlet will save the image and it will be available right away, although listed on the documentation, it may not be required in some situations. All cmdlets are listed and shown in Figure 05, where we are defining the photo for the user number14

$photo = ([Byte[]] $(Get-Content –Path “C:\path\photo.jpg” –Encoding Byte –ReadCount 0))

Set-UserPhoto <mailbox> -PictureData $photo –Confirm:$False

Set-UserPhoto <mailbox> -Save –Confirm:$False

Image
Figure 05

Restricting end-users to change their own photos…

By default, the end-users can change their own photos, however there are a couple of ways to restrict this feature. A simple one is using Outlook Web App Mailbox Policies, we can create a new Outlook Web App Policy and assign to a user to enable the restriction, and using the following cmdlet to create a new OWAMailboxPolicy.

New-OWAMailboxPolicy <Name>

The second step is to disable the ability to change photos and it can be easily done using the following cmdlet.

Set-OWAMailboxPolicy <OWAMailboxPolicy-Name> -SetPhotoEnabled $False

The final step is to associate that brand new Outlook Web App Policy to the desired user, select the user in the recipients area using Exchange Admin Center, and then click on View Details located under Email Connectivity area. In the new page, select the Outlook Web App policy and click on save (Figure 06).

Image
Figure 06

When the user tries to change their picture, the buttons to manage their own picture are gone, hence the picture cannot be changed (Figure 07)

Image
Figure 07

Bear in mind, that although we do not allow the end-user to change their own picture, using Skype for Business the end-user can still hide his picture using the option Hide my picture (Figure 08), but that only impacts Skype for Business, the photo is displayed in Outlook Web App and Microsoft Outlook.

Image
Figure 08

Offline Address Book and photos...

By default, the OAB (Offline Address Book) does not contain the photos. A cache mode client in offline mode will not be able to see the photos, Exchange Team member Bharat Suneja explained in great detail how to configure the OAB for Exchange and Outlook 2010 in the Microsoft Exchange Team blog post.

How about Exchange Server 2013? It depends, if you have already configured in Exchange Server 2010 and then transitioned to Exchange Server 2013, then you should be okay. If it is a brand new Exchange Organization running Exchange Server 2013, then the OAB must be configured.

In the Figure 09, we can get the current configured attributes for any given Offline Address Book, if it shows Indicator ThumbnailPhoto, Indicator that means that the photo is not part of the OAB.

Image
Figure 09

If we need to add the thumbnailPhoto attribute as part of the OAB, then these following steps can be used (Figure 10):

$attr = (Get-OfflineAddressBook <OAB-Name>).ConfiguredAttributes

$attr.Remove(“thumbnailPhoto,indicator”)

$attr.Add(“thumbnailPhoto,Value”)

Set-OfflineAddressBook <OAB-Name> -ConfiguredAttributes $attr

Update-OfflineAddressBook <OAB-Name>

Image
Figure 10

Again, there is no free lunch, and this procedure will increase the size of your OAB. Please consider the number of users and the benefit of enabling such feature.

Notes from the field...

Sometimes when configuring a high-resolution photo to a user, the result can be a low-resolution image, and usually the reason is related the ability of the Skype for Business Server to contact the Exchange Web Services to retrieve the information.

If you are having this kind of issue, hold ctrl and right-click on the Skype for Business systray icon, and then click on Configuration Information. In the new page, check the values for EWS Internal URL, EWS External URL and EWS Information, and if you are getting an EWS not deployed (Figure 11), then your next step is to fix that issue because that is a prerequisite to get high-resolution photos.

Image
Figure 11

If you are following the guidelines that we defined in the first article of this series, you will be okay already. What we need is to have the autodiscover.patricio.ca in the Certificate installed on the Exchange Server (the recommendation is to use a Public Certificate to avoid any headaches with mobile and endpoints in general), as shown in Figure 12.

Image
Figure 12

Also make sure that autodiscover.patricio.ca entry is reachable from any network (internal and external), after having all those small details in place, the expected results on the Skype for Business client should be the URL for the EWS (internal and external) and the EWS Status OK on the EWS Information entry, as shown in Figure 13.

Image
Figure 13

Conclusion

In this article, we covered some points related to the high-resolution photos in Exchange Server 2013 and Skype for Business Server.

More Information:

If you would like to read the other parts of this article series please go to:

See Also


The Author — Anderson Patricio

Anderson Patricio avatar

Anderson Patricio is a consultant for Microsoft technologies. He works with Exchange Server, ISA Sever and Active Directory deployments at a Microsoft Gold Partner in Toronto, Canada. In the Technet Brasil community, he contributes news, articles and webcasts.

Advertisement

Featured Links