Exchange Server 2010 Global Address List and User Photos

by Arman Obosyan 21. March 2010 19:58

Вы наверно уже не раз встречали статьи на тему фотографий пользователей в глобальной адресной книге, если вы ещё не знакомы с этим, то можете ознакомится на Photos in Exchange 2010 and Outlook 2010) и тут на русском Фото пользователей в GAL Exchange 2010 и Outlook 2010

Недавно я встретил более простой метод работы с фотографиями, скрипт Anderson Patricio который позволяет легко загрузить фотографии как одному пользователю так и сразу нескольким одновременно!

Скрипт доступен тут и тут UploadPhoto.ps1

Содержимое скрипта выглядит следующим образом,

# Script created by Anderson Patricio (
uploadphoto.ps1 <mailbox-name>
uploadphoto.ps1 -all (It will load all jpg files from the default folder and upload to the users in AD

param([Switch]$all, [String]$UserName)

#Default Values. Change them based on your environment.
$DefaultPhotoPath = 'C:\Photos'

Function CheckPhoto(){
Write-Warning "Validating file(s).."
Write-Host "File exists... " -nonewline
If (Test-Path $PhotoPath)
Write-Host "[OK]" -ForeGroundColor Green
Write-host "Photo size... " -nonewline
$PhotoSize = Get-ChildItem $PhotoPath | select Length
If ($PhotoSize.Length -le 10000) { Write-Host "[OK]" -ForeGroundColor Green }
Else { Write-Host "[Fail]" -ForeGroundColor Red; exit }
Write-Host "[Fail]" -ForeGroundColor Red
Function UploadAll(){
ForEach ($TempFile in Get-ChildItem $DefaultPhotoPath | Where-Object { $_.Extension -eq ".jpg" } )
$TempUserName = $TempFile.Name.substring(0, $TempFile.Name.Length - 4)
Write-Host $TempUserName -ForeGroundColor Yellow -NoNewLine
Import-RecipientDataProperty -Identity $TempUserName -PictureFileData
([Byte[]]$(Get-Content -path $TempFile.Fullname -Encoding Byte -ReadCount 0))
Write-Host "[Done]" -ForeGroundColor Green

If ( $all -eq $true)
Write-Warning " ## This action will upload all pictures of C:\Photos to the AD users."
Write-Warning " ## All pictures must have the same name of the usernames"
Write-Warning "Are you sure that you want upload all pictures to the users (Y/N)?"
$Opt = Read-Host
If ( $Opt -eq 'y' ) { UploadAll; } Else { Write-Host "No changes were made."; Exit }
$PhotoPath = $DefaultPhotoPaty + $UserName + '.jpg'
If ( $AbortMission -eq '$true' ) { Write-Error "Please, review the errors and try again." }
Else { Import-RecipientDataProperty -Identity $UserName -PictureFileData 
([Byte[]]$(Get-Content -path $PhotoPath -Encoding Byte -ReadCount 0)) } 

(*лучше не копировать, скрипт брать тут или тут UploadPhoto.ps1)

Где $DefaultPhotoPath = 'C:\Photos' путь наших фотографии

Работа скрипта простая

uploadphoto.ps1 “маилбокс” (загрузка фотографий конкретному пользователю)
uploadphoto.ps1 all (загрузка фотографий всем пользователям, названия фотографий должны соответствовать с пользователеми)

Рекомендуемые параметры фотографий 96×96 пиксель и максимальный размер 10Kb

Пример работы, загрузка нескольким пользователям фотографий

Легко и просто!

Результат смотрим в Outlook 2010


Несмотря на то что нет встроенных "простых" средств (я про EMC и EMS в стиле Set-Mailbox -Picture) на установку фотографий, но вот на удаление есть готовый командлед Set-Mailbox “маилбокс”–RemovePicture

Вот пока на этом все

Comments are closed

© 2008-2012, Arman Obosyan, Postmaster.GE
Powered by BlogEngine.NET
Hosted on Windows Azure and IIS8

About the author

Arman Obosyan have more than 20+ years’ work experience in Information Technologies sector.

Last few years he working on a position Technology Strategist at Microsoft Corporation, In the past Arman was Head of IT Infrastructure in Governmental Central Bank of Georgia (National Bank of Georgia).

Nowadays Arman is supporting C-Level and enabling business, visionary with a passion of technology, trends.


Certified since 2003 year, passed following certifications MCP, MCSA, MCSE, MCTS, MCITP, Exin ITIL and VMware Certified Professional (VCP)

Founder / Lead of Microsoft Certified Professionals (MCP) Club Tbilisi and Community GE project 

In 2010 Was awarded a Microsoft Most Valuable Professional (MVP)

2017 MVP Reconnect


The opinions expressed herein are my own personal opinions and do not represent anyone else's view in any way, including those of my employer.

Live Trafic



<<  January 2021  >>

View posts in large calendar