Odovzdanie fotografie používateľa do služby Active Directory pomocou PowerShell

Medzi užívateľskými atribútmi, počínajúc verziou schémy Active Directory v systéme Windows Server 2000, je špeciálny atribút thumbnailPhoto, kde môžete uložiť fotografiu používateľa (alebo akékoľvek iné obrázky 🙂) ako binárne údaje. Aplikácia Outlook od Lync 2010, SharePoint (a ďalšie aplikácie) môžu údaje uložené v tomto atribúte použiť na zobrazenie fotografie používateľa vo svojom rozhraní. Tieto fotografie môžu byť navyše použité ako avatar používateľov systému Windows..

Pozrime sa na niekoľko jednoduchých scenárov, ako odovzdávať fotografie používateľov do služby AD a exportovať údaje z domény do obrazových súborov.

Kľúčové vlastnosti a obmedzenia použitia užívateľských fotografií v službe AD:

  • Maximálna veľkosť hodnoty atribútu thumbnailPhoto používateľa, v ktorom je uložená stiahnutá fotografia, je 100 kB. Existuje však všeobecné odporúčanie použiť obrazový súbor s veľkosťou AD ako fotografiu používateľa v službe AD do 10 Kb a veľkosť 96 × 96 pixlov
  • na zobrazenie fotografií v programe Outlook 2010 a novších verziách sa vyžaduje aspoň verzia schémy AD 2008
  • Pri veľkom počte užívateľských fotografií v službe AD sa môžu vyskytnúť problémy s replikáciou v dôsledku rastu databázy NTDS.DIT
  • Používatelia majú právo zmeniť svoju vlastnú fotku v službe AD. Ak potrebujete delegovať možnosť odovzdávania fotografií iným používateľom (napríklad oddelenia ľudských zdrojov), musíte udeliť miniatúru pravého zápisu na požadovanú organizačnú jednotku.

obsah:

  • Inštalácia fotografie používateľa do AD pomocou PowerShell
  • Nahrajte fotku používateľa služby AD cez server Exchange Shell
  • Dávkový import obrázka do AD
  • Odovzdajte fotografie používateľov zo služby Active Directory do súboru

Inštalácia fotografie používateľa do AD pomocou PowerShell

Ak chcete načítať fotografiu používateľa v službe Active Directory pomocou PowerShell, musíte načítať modul aktívny adresár modul pre windows Powershell a pomocou rutiny cmdlet Set-ADUser aktualizujte atribút thumbnailPhoto načítaním obsahu obrazového súboru ako jeho hodnoty.

Importovaný modul ActiveDirectory
$ photo = [byte []] (obsah C: \ PS \ admin_photo.jpg - kódovací bajt)
Set-ADUser vvkuzmin -Replace @ thumbnailPhoto = $ photo

Rovnaká vec v jednom riadku:

Set-ADUser vvkuzmin -Replace @ thumbnailPhoto = ([byte []] (Get-Content "C: \ ps \ admin_photo.jpg" -Encoding byte))

Po vykonaní týchto príkazov sa klientska fotografia uložená v Active Directory zobrazí v klientoch Outlook, Lync, OWA atď. (Dokončenie replikácie a aktualizácia GAL môže trvať nejaký čas).

Nahrajte fotku používateľa služby AD cez server Exchange Shell

Podobné funkcie pre nahrávanie užívateľských fotografií do AD sú podporované prostredníctvom konzoly Exchange Management Shell. Na tieto účely môžete použiť rutinu cmdlet Import-RecipientDataProperty.

poznámka. Rutina Import-RecipientDataProperty na serveri Exchange 2010 nemôže načítať obrázok väčší ako 10 kB.

Príkaz na aktualizáciu fotografie vvkuzmin bude vyzerať takto:

Import-RecipientDataProperty -Identity “vvkuzmin” -Obrázok -FileData ([Byte []] $ (Get-Content - Cesta “C: \ PS \ admin_photo.jpg” - Kódovanie Byte -ReadCount 0))

Dávkový import obrázka do AD

Na hromadné importovanie obrázkov pre mnohých používateľov služby Active Directory naraz potrebujeme súbor CSV, ktorý bude obsahovať zoznam účtov a zodpovedajúce súbory fotografií. Formát súboru import.csv môže byť nasledujúci:

AD_používateľské meno, fotografia
avivanov, C: \ PS \ avivanov.jpg
[email protected], C: \ PS \ jsmith.jpg
pppetrov, C: \ PS \ pppetrov.png

Nasledujúci príkaz načíta zoznam používateľov zo súboru CSV a aktualizuje ich fotografie v službe AD:

Import-Csv C: \ PS \ import.csv |% Set-ADUser --Identity $ _. AD_username -Replace @ thumbnailPhoto = ([byte []] (Get-Content $ _. Photo -Encoding byte))

Odovzdajte fotografie používateľov zo služby Active Directory do súboru

Užívateľskú fotografiu z AD je možné uložiť do grafického súboru. Vyberte používateľa pomocou Get-ADUser:

$ ADuser = Get-ADUser vvkuzmin -Properties thumbnailPhoto

A uložte obsah svojho atribútu thumbnailPhoto do súboru jpg:

$ ADuser.thumbnailPhoto | Set-Content vvkuzmin.jpg - kódovanie bajtov

Pomocou nasledujúceho skriptu nahrajte fotografiu všetko používatelia zo špecifického kontajnera (OU) do súboru:

Importovaný modul ActiveDirectory
$ ADusers = Get-ADUser -Filter * -SearchBase "OU = Užívatelia, OU = Ufa, DC = winitpro, DC = sk" -Vlastnosti miniatúryFoto | ? $ _. thumbnailPhoto
foreach ($ Aduser v $ Adusers)
$ name = $ ADuser.SamAccountName + ".jpg"
$ ADuser.thumbnailPhoto | $ Set-Content $ -Kódovanie bajtov

A nakoniec niekoľko užitočných otázok. Prvý vám umožňuje vybrať všetkých používateľov, ktorí majú nastavenú fotografiu v atribúte AD thumbnailPhoto

Get-ADUser -Filter * - vlastnosti miniatúryFotografie ? $ _. thumbnailPhoto | vyberte Meno

Druhá žiadosť vám umožňuje vybrať používateľov bez fotografie:

Get-ADUser -Filter * - vlastnosti miniatúryFotografie ? (-not ($ _. thumbnailPhoto)) | vyberte Meno

Existuje veľké množstvo nástrojov tretích strán, ktoré umožňujú grafickým editorom pohodlnejšie nastavovať fotografie pre používateľov služby AD. Ich spravidla je však ich funkčnosť nadbytočná a riziká spojené s používaním softvéru na úpravu AD od tretích strán sú značné. Navyše, všetky zmeny sa dajú ľahko vykonať pomocou PowerShell.