Manage Exchange 2010 Thumbnail Photos with a PowerShell Based GUI
One of the new features in Exchange 2010 is the ability to import thumbnail photos into Active Directory. When you import a photo for a user into Active Directory, the image can be displayed in Outlook email messages and the global address list. You can manage thumbnail photos using the Import-RecipientDataProperty and Export-RecipientDataProperty EMS cmdlets.
While this is a very useful new feature, it is likely that entry level support techs or HR personnel that are not yet PowerShell savvy will be responsible for managing thumbnail photos. So, I’ve written a PowerShell based application using PrimalForms 2009 that provides a graphical interface to these cmdlets.
How Does It Work?
It’s pretty simple. Go through this Exchange Team blog post to get your environment configured. Next, you need to download the script from here and save the code to a file with a .ps1 extension. Of course, the user running the application will need to be assigned the appropriate permissions.
The only other requirement is that you run the script from a machine running PowerShell v2. If you do not have the Exchange tools installed, the script will detect this and import the EMS cmdlets from an Exchange server in the local AD site (I blogged about how to do this a while ago in this post). Take a look at the following screen shot and the steps that explain how to use the application:
- Select a Mailbox. Type a name (you can use wild cards) and click on Search. Highlight the mailbox you want to configure in the results pane.
- Select a Photo. Click on Browse and navigate to a .jpg file that you want to use for the user. This should be no larger than 10k. Also, keep in mind that the recommended thumbnail photo size in pixels is 96×96 pixels.
- Upload a New Photo. Once you’ve selected a mailbox and a photo, click on the Upload New Photo button to add the image to Active Directory.
- Preview Current Photo. You can click on the Preview Current Photo link after selecting a mailbox to see the current image in the Photo Preview window. The Photo Preview window will also display photos that you browse to on your machine so you can see them before uploading them.
After you’ve uploaded a photo for a user, you can view it in Outlook 2010 when browsing the global address list, or in an email message, as shown below:
In my environment, it takes about 10-15 seconds to import the EMS commands into the local PowerShell session. Because of this, I added a message before the main form loads telling the user to "please wait" while the application is started. If the Exchange tools are installed and/or the commands have already been imported into your PowerShell session then you will not see this message.