Over the years, displaying recipient photographs in the Global Address List (GAL) has been a frequently-requested feature, high on the wish lists of many Exchange folks. Particularly in large organizations or geographically dispersed teams, it's great to be able to put a face to a name for people you've never met or don't frequently have face time with. Employees are commonly photographed when issuing badges/IDs, and many organizations publish the photos on intranets.
Exchange 2010 and Outlook 2010 make this task a snap, with help from AD. AD includes the Picture attribute (we'll refer to it using its ldapDisplayName: thumbnailPhoto) to store thumbnail photos, and you can easily import photos— not the high-res ones from your 20 megapixel digital camera, but small, less-than-10K-ish ones, using Exchange 2010's Import-RecipientDataProperty cmdlet.
The first question most IT folks would want to ask is— What's importing all those photos going to do to the size of my AD database? And how much AD replication traffic will this generate? The cmdlet won't allow you to import a picture larger than 10K. The original picture used in this example was 9K, and you can compress it further to a much smaller size - let's say approximately 2K-2.5K, without any noticeable degradation when displayed at the smaller sizes. If you store user certificates in AD, the 10K or smaller size thumbnail pictures are comparable in size. Storing thumbnails for 10,000 users would take close to 100 Mb, and it's data that doesn't change frequently.
This is fantastic news, as it can take the place of the directory info of an Intranet. I often rely on the GAL for phone numbers and office locations or to lookup someone if I just know their first or last name.
This means the value of the attribute isn't copied to the OAB— instead, it simply indicates the client should get the value from AD. If an Outlook client (including Outlook Anywhere clients connected to Exchange using HTTPS) can access AD, the thumbnail will be downloaded and displayed.
While it's not cached in the OAB by default, it can be done.
For true offline use, you could modify the ConfiguredAttributes of an OAB to make thumbnailPhoto a Valueattribute. After this is done and the OAB updated, the photos are added to the OAB.
That might not be good for larger organizations, but for small to medium sized ones, it might work very well.
UPDATE: MSExchange.org has a step-by-step guide.