На протяжении всего времени использования Outlook 2010 замечал пустые окошки, где должны находиться фотографии пользователей, и в свободную минутку появилось желание дополнить данные о сотрудниках.
Поиск вывел: раз, два, три.
У меня есть ограничение в 10кб и разрешение не более 96 на 96 точек, bmp или jpg. В Active Directory есть атрибут Picture (ldapDisplayName: thumbnailPhoto), его и будем использовать в скрипте.
Для поиска всех учетных записей применил фильтр:
В переменной $folder задается директория, с фотографиями в формате
логин_пользователя.jpg (можно использовать bmp, перед этим подправив скрипт).
После использования скрипта фотографии стали доступны как в GAL, так и в Lync'e, что очень приятно.
Поиск вывел: раз, два, три.
У меня есть ограничение в 10кб и разрешение не более 96 на 96 точек, bmp или jpg. В Active Directory есть атрибут Picture (ldapDisplayName: thumbnailPhoto), его и будем использовать в скрипте.
$folder = "C:\photos\"
$domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$root = $domain.GetDirectoryEntry()
$search = [System.DirectoryServices.DirectorySearcher
]$root
$search.Filter = "(&(objectCategory=Person)(objectClass=User))"
$search.FindAll() | foreach {
$user = [adsi<]$_.path
$accountName = $user.psbase.Properties["samaccountname"]
$jpgfile = "$folder$accountName.jpg"
if(!(test-path $jpgfile)){
write-host "User $($accountName) – image not found."
} else {
[byte[]]$jpg = Get-Content $jpgfile -encoding byte
$user.put("thumbnailPhoto", $jpg)
$user.setinfo()
Write-Host "User $($accountName) – updated."
}
}
Для поиска всех учетных записей применил фильтр:
$search.Filter = «(&(objectCategory=Person)(objectClass=User))»
В переменной $folder задается директория, с фотографиями в формате
логин_пользователя.jpg (можно использовать bmp, перед этим подправив скрипт).
После использования скрипта фотографии стали доступны как в GAL, так и в Lync'e, что очень приятно.