Сред потребителските атрибути, започвайки от версията на схемата Active Directory в Windows Server 2000, има специален атрибут thumbnailPhoto, където можете да съхранявате снимката на потребителя (или всякакви други снимки 🙂) като двоични данни. Outlook, започващ с Lync 2010, SharePoint (и други приложения) могат да използват данните, съхранени в този атрибут за показване на снимката на потребителя в техния интерфейс. В допълнение, тези снимки могат да се използват като аватар на потребителите на Windows..
Нека разгледаме няколко прости сценария за качване на потребителски снимки в AD и експортиране на данни от домейн в файлове с изображения.
Основни характеристики и ограничения на използването на потребителски снимки в AD:
- Максималният размер на стойността на атрибута thumbnailPhoto на потребителя, в който се съхранява изтеглената снимка, е 100 Kb. Въпреки това, има обща препоръка да използвате файл с изображение с размер AD като снимка на потребителя в AD до 10 Kb и размер 96 × 96 пиксела
- за показване на снимки в Outlook 2010 и по-нови версии е необходима поне версия на схемата AD 2008
- При голям брой потребителски снимки в AD могат да възникнат проблеми с репликацията поради растежа на базата данни NTDS.DIT
- Потребителите имат права да променят собствената си снимка в AD. Ако трябва да делегирате възможността да качвате снимки на други потребители (например HR отдела), трябва да предоставите правото „Напишете миниатюратаФото“ на желания OU в AD
Съдържание:
- Инсталиране на снимка на потребителя в AD с помощта на PowerShell
- Качете потребителска снимка на AD чрез Exchange Shell
- Партидно импортиране на изображение в AD
- Качете потребителски снимки от Active Directory във файл
Инсталиране на снимка на потребителя в AD с помощта на PowerShell
За да заредите снимка на потребителя в Active Directory с помощта на PowerShell, трябва да заредите модула активен указател модул за Windows Powershell и използвайте командлета Set-ADUser, за да актуализирате атрибута thumbnailPhoto, като заредите съдържанието на файла с изображение като негова стойност.
Импорт-модул ActiveDirectory
$ photo = [байт []] (Get-Content C: \ PS \ admin_photo.jpg -Банк за кодиране)
Set-ADUser vvkuzmin -Replace @ thumbnailPhoto = $ photo
Същото нещо в един ред:
Set-ADUser vvkuzmin -Replace @ thumbnailPhoto = ([байт []] (Get-Content "C: \ ps \ admin_photo.jpg" -Encoding byte))
След изпълнение на тези команди снимката на клиента, съхранявана в Active Directory, ще бъде показана в клиентите на Outlook, Lync, OWA и др. (Може да отнеме известно време, за да завършите репликацията и да актуализирате GAL).
Качете потребителска снимка на AD чрез Exchange Shell
Подобна функционалност за качване на потребителски снимки в AD се поддържа чрез конзолата за управление на Exchange. За тези цели можете да използвате командлета Внос-RecipientDataProperty.
забележка. Командлерът Import-RecipientDataProperty в Exchange 2010 не може да зареди изображение, по-голямо от 10 KB.Командата за актуализиране на снимката на vvkuzmin ще изглежда така:
Import-RecipientDataProperty -Identity “vvkuzmin” -Picture -FileData ([Byte []] $ (Get-Content -Path “C: \ PS \ admin_photo.jpg” -Encoding Byte -ReadCount 0))
Партидно импортиране на изображение в AD
За пакетно импортиране на изображения за много потребители на Active Directory наведнъж се нуждаем от CSV файл, който ще съдържа списък с акаунти и съответните файлове със снимки. Форматът на файла import.csv може да бъде такъв:
AD_username, Снимка
avivanov, C: \ PS \ avivanov.jpg
[email protected], C: \ PS \ jsmith.jpg
pppetrov, C: \ PS \ pppetrov.png
Следващата команда ще зареди списъка с потребители от CSV файла и ще актуализира снимките им в AD:
Import-Csv C: \ PS \ import.csv |% Set-ADUser -Identity $ _. AD_username -Заменете @ thumbnailPhoto = ([байт []] (Get-Content $ _. Photo -Encoding byte))
Качете потребителски снимки от Active Directory във файл
Потребителската снимка от AD може да бъде записана в графичен файл. За да направите това, изберете желания потребител с Get-ADUser:
$ ADuser = Get-ADUser vvkuzmin -Properties thumbnailPhoto
И запазете съдържанието на своя атрибут thumbnailPhoto във jpg файл:
$ ADuser.thumbnailPhoto | Set-Content vvkuzmin.jpg -Encoding byte
Използвайте следния скрипт, качете снимката всички потребители от конкретен контейнер (OU) до файл:
Импорт-модул ActiveDirectory
$ ADusers = Get-ADUser -Filter * -SearchBase "OU = Потребители, OU = Ufa, DC = winitpro, DC = bg" - thumbnail Снимки | ? $ _. thumbnailPhoto
foreach ($ ADuser в $ ADusers)
$ name = $ ADuser.SamAccountName + ".jpg"
$ ADuser.thumbnailPhoto | Set-Content $ name-байт за кодиране
И накрая, няколко полезни запитвания. Първият ви позволява да изберете всички потребители, които имат набор от снимки в атрибута AD thumbnailPhoto
Get-ADUser -Filter * -properties thumbnailPhoto | ? $ _. thumbnailФото | изберете Име
Втората заявка ви позволява да изберете потребители без снимка:
Get-ADUser -Filter * -properties thumbnailPhoto | ? (-not ($ _. thumbnailPhoto)) | изберете Име
Има голям брой помощни програми на трети страни, които позволяват на графичните редактори да задават снимки на потребителите на AD в по-удобна форма. Но като правило тяхната функционалност е излишна, а рисковете от използването на трети софтуер за редактиране на AD са доста значителни. Освен това, всички промени могат лесно да бъдат направени чрез PowerShell.