Prijenos fotografije korisnika u Active Directory pomoću PowerShell-a

Među korisničkim atributima, počevši od verzije sheme Active Directory u sustavu Windows Server 2000, postoji poseban atribut thumbnailPhoto, gdje možete pohraniti korisnikovu fotografiju (ili bilo koju drugu sliku 🙂) kao binarne podatke. Outlook počevši od Lync 2010, SharePoint (i ostale aplikacije) mogu koristiti podatke pohranjene u ovom atributu za prikaz korisnikove fotografije u njihovom sučelju. Pored toga, ove se fotografije mogu koristiti kao avatar Windows korisnika..

Pogledajmo nekoliko jednostavnih scenarija za prijenos korisničkih fotografija u AD i izvoz podataka iz domene u slikovne datoteke.

Ključne značajke i ograničenja upotrebe korisničkih fotografija u AD-u:

  • Maksimalna veličina vrijednosti atributa thumbnailPhoto korisnika u kojega je preuzeta fotografija pohranjena je 100 Kb. Međutim, postoji općenita preporuka za upotrebu slikovne datoteke veličine AD kao fotografije korisnika u AD-u do 10 Kb i veličini 96 × 96 piksela
  • za prikaz fotografija u programu Outlook 2010 i novijima, potrebna je barem inačica sheme AD 2008
  • S velikim brojem korisničkih fotografija u AD-u, mogu se pojaviti problemi s replikacijom zbog rasta baze podataka NTDS.DIT
  • Korisnici imaju pravo na promjenu vlastite fotografije u AD-u. Ako želite delegirati mogućnost prijenosa fotografija drugim korisnicima (na primjer, odjel za ljudske resurse), morate dodijeliti željenu OU sličicu za pisanje desne fotografije

sadržaj:

  • Instaliranje korisnikove fotografije u AD pomoću PowerShell-a
  • Učitajte korisničku fotografiju AD-a putem Exchange Shell-a
  • Paket uvoza slike u AD
  • Učitajte korisničke fotografije iz Active Directory u datoteku

Instaliranje korisnikove fotografije u AD pomoću PowerShell-a

Da biste učitali korisničku fotografiju u Active Directory pomoću PowerShell-a, morate učitati modul aktivan imenik modul za Windows PowerShell i koristite cmdlet Set-ADUser za ažuriranje atributa thumbnailPhoto učitavanjem sadržaja slikovne datoteke kao svoje vrijednosti.

Uvozni modul ActiveDirectory
$ photo = [bajt []] (Nabavite sadržaj C: \ PS \ admin_photo.jpg -Encoding byte)
Postavi ADUser vvkuzmin-Zamijeni @ thumbnailPhoto = $ photo

Ista stvar u jednom retku:

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

Nakon izvršavanja ovih naredbi, klijentova fotografija pohranjena u Active Directory prikazat će se u klijentima Outlook, Lync, OWA itd. (Možda će trebati neko vrijeme da dovršite replikaciju i ažurirate GAL).

Učitajte korisničku fotografiju AD-a putem Exchange Shell-a

Slična funkcionalnost za prijenos korisničkih fotografija u AD podržana je putem konzole za upravljanje Exchange. U ove svrhe možete koristiti cmdlet Uvoz-RecipientDataProperty.

primjedba. Cmdlet Import-RecipientDataProperty u programu Exchange 2010 ne može učitati sliku veću od 10 KB.

Naredba za ažuriranje fotografije vvkuzmina izgledat će ovako:

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

Paket uvoza slike u AD

Za skupni uvoz slika za mnoge korisnike aktivnog direktorija odjednom, potrebna nam je CSV datoteka koja će sadržavati popis računa i odgovarajuće datoteke s fotografijama. Format datoteke import.csv može biti ovako:

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

Sljedeća naredba učitavat će popis korisnika iz CSV datoteke i ažurirati njihove fotografije u AD-u:

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

Učitajte korisničke fotografije iz Active Directory u datoteku

Korisnička fotografija iz AD-a može se spremiti u grafičku datoteku. Da biste to učinili, odaberite željenog korisnika pomoću Get-ADUser:

$ ADuser = Get-ADUser vvkuzmin-sličice proizvodaFoto

I spremite sadržaj atributa thumbnailPhoto u jpg datoteku:

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

Pomoću sljedeće skripte prenesite fotografiju sve korisnici iz određenog spremnika (OU) u datoteku:

Uvozni modul ActiveDirectory
$ ADusers = Get-ADUser -Filter * -Stražna baza "OU = Korisnici, OU = Ufa, DC = winitpro, DC = hr" -slika sličicaFoto | ? $ _. thumbnailFoto
foreach ($ ADuser u $ ADusers)
$ name = $ ADuser.SamAccountName + ".jpg"
$ ADuser.thumbnailPhoto | Set-Content $ name -Encoding byte

I na kraju, nekoliko korisnih upita. Prvo vam omogućuje da odaberete sve korisnike koji imaju postavljenu fotografiju u atributu AD thumbnailPhoto

Get-ADUser -Filter * -properties thumbnailPhoto | ? $ _. sličicaFoto | odaberite Ime

Drugi zahtjev omogućuje vam odabir korisnika bez fotografije:

Get-ADUser -Filter * -properties thumbnailPhoto | ? (-not ($ _. um. sličica)) | odaberite Ime

Veliki je broj uslužnih programa drugih proizvođača koji grafičkim urednicima omogućavaju postavljanje fotografija za AD korisnike u prikladnijem obliku. Ali u pravilu je njihova funkcionalnost suvišna, a rizici korištenja softvera treće strane za uređivanje AD prilično su značajni. Štoviše, sve promjene se mogu lako provesti kroz PowerShell.