Nalaganje uporabnikove fotografije v Active Directory s pomočjo PowerShell-a

Med uporabniškimi atributi, začenši z različico sheme Active Directory v sistemu Windows Server 2000, obstaja poseben atribut sličica, kamor lahko shranite uporabnikovo fotografijo (ali katere koli druge slike 🙂) kot binarne podatke. Outlook, ki se začne z Lync 2010, SharePoint (in druge aplikacije) lahko podatke, shranjene v tem atributu, uporabijo za prikaz fotografije uporabnika v njihovem vmesniku. Poleg tega se te fotografije lahko uporabljajo kot avatar uporabnikov sistema Windows..

Oglejmo si nekaj preprostih scenarijev za nalaganje uporabniških fotografij v AD in izvoz podatkov iz domene v slikovne datoteke.

Ključne značilnosti in omejitve uporabe fotografij uporabnikov v oglasu:

  • Največja velikost uporabnikovega atributa thumbnailPhoto, v katerem je shranjena fotografija, je 100 Kb. Vendar pa obstaja splošno priporočilo, da kot fotografijo uporabnika v AD uporabite slikovno datoteko velikosti AD do 10 Kb in velikost 96 × 96 pik
  • za prikaz fotografij v Outlooku 2010 in novejših različicah je potrebna vsaj različica sheme AD 2008
  • Pri velikem številu uporabniških fotografij v AD-ju lahko nastanejo težave s podvajanjem zaradi rasti baze podatkov NTDS.DIT
  • Uporabniki imajo pravico do spremembe lastne fotografije v oglasu. Če želite prenesti fotografije drugim uporabnikom (na primer kadrovskemu oddelku), morate želeni OU odobriti sličico Write Right Photo.

Vsebina:

  • Namestitev uporabnikove fotografije v AD s pomočjo PowerShell-a
  • Naložite uporabniško fotografijo AD prek Exchange Shell
  • Paket uvoza slike v AD
  • Naložite fotografije uporabnika iz Active Directory v datoteko

Namestitev uporabnikove fotografije v AD s pomočjo PowerShell-a

Če želite naložiti fotografijo uporabnika v Active Directory s programom PowerShell, morate naložiti modul Aktivno Imenik Modul za Windows Powershell in uporabite ukazni program Set-ADUser, da posodobite atribut sličice, tako da vsebino slikovne datoteke naložite kot njeno vrednost..

Uvozni modul ActiveDirectory
$ photo = [bajt []] (Pridobitev vsebine C: \ PS \ admin_photo.jpg -Encoding byte)
Set-ADUser vvkuzmin -Replace @ thumbnailPhoto = $ photo

Ista stvar v eni vrstici:

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

Po izvedbi teh ukazov bo stranka odjemalca, shranjena v aktivnem imeniku, prikazana v odjemalcih Outlook, Lync, OWA itd. (Traja lahko nekaj časa, da končate kopiranje in posodobite GAL).

Naložite uporabniško fotografijo AD prek Exchange Shell

Podobna funkcionalnost za nalaganje uporabniških fotografij v AD je podprta prek konzole Exchange Management Shell. V te namene lahko uporabite cmdlet Lastnost uvoza-prejemnikaDataProperty.

Opomba. Cmdlet Import-RecipientDataProperty v programu Exchange 2010 ne more naložiti slike, večje od 10 KB.

Ukaz za posodobitev fotografije vvkuzmin bo izgledal tako:

Import-RecipientDataProperty -Identity "vvkuzmin" -Picture -FileData ([bajt []] $ (Get-Content-Pot "C: \ PS \ admin_photo.jpg" -Encoding Byte -ReadCount 0))

Paket uvoza slike v AD

Za paketni uvoz slik za več uporabnikov Active Directory hkrati potrebujemo datoteko CSV, ki bo vsebovala seznam računov in ustrezne datoteke s fotografijami. Oblika datoteke import.csv je lahko takšna:

AD_username, fotografija
avivanov, C: \ PS \ avivanov.jpg
[email protected], C: \ PS \ jsmith.jpg
pppetrov, C: \ PS \ pppetrov.png

Naslednji ukaz bo naložil seznam uporabnikov iz datoteke CSV in posodobil njihove fotografije v AD:

Import-Csv C: \ PS \ import.csv |% Set-ADUser -Identiteta $ _. AD_username-Zamenjaj @ thumbnailPhoto = ([bajt []] (Pridobitev vsebine $ _. Foto-kodiranje bajtov))

Naložite fotografije uporabnika iz Active Directory v datoteko

Uporabniško fotografijo iz AD-ja lahko shranite v grafično datoteko. Če želite to narediti, z želenim uporabnikom izberite Get-ADUser:

$ ADuser = Get-ADUser vvkuzmin-sličica sličicFoto

In shranite vsebino sličice sličice Photo v datoteko jpg:

$ ADuser.thumbnailPhoto | Set-Content vvkuzmin.jpg -Encoding byte

Z naslednjim skriptom naložite fotografijo vse uporabniki iz določenega vsebnika (OU) v datoteko:

Uvozni modul ActiveDirectory
$ ADusers = Get-ADUser -Filter * -SearchBase "OU = Uporabniki, OU = Ufa, DC = winitpro, DC = sl" - sličica lastnostiFoto | ? $ _. sličicaFoto
foreach ($ ADuser v $ ADusers)
$ name = $ ADuser.SamAccountName + ".jpg"
$ ADuser.thumbnailPhoto | Set-Content $ name - kodiranje bajta

In na koncu še nekaj koristnih poizvedb. Prvi vam omogoča, da izberete vse uporabnike, ki imajo v atributu AD sličica Foto nastavljeno fotografijo

Get-ADUser -Filter * -properties thumbnailFoto | ? $ _. sličica Fotografija | izberite Ime

Druga zahteva omogoča izbiro uporabnikov brez fotografije:

Get-ADUser -Filter * -properties thumbnailFoto | ? (-not ($ _. sličicaSlika)) | izberite Ime

Obstaja veliko število drugih pripomočkov, ki omogočajo grafičnim urejevalnikom, da v bolj priročni obliki nastavljajo fotografije za uporabnike AD. Praviloma je njihova funkcionalnost odvečna, tveganja uporabe druge programske opreme za urejanje AD pa so precej velika. Poleg tega je mogoče vse spremembe enostavno opraviti s programom PowerShell.