Felhasználói fénykép feltöltése az Active Directory-ba a PowerShell használatával

A felhasználói attribútumok között, a Windows Server 2000 Active Directory sémájának verziójától kezdve, van egy speciális attribútum thumbnailPhoto, ahol a felhasználó fotóit (vagy bármilyen más képet 🙂) bináris adatként tárolhatja. Az Lync 2010-től kezdődő Outlook, a SharePoint (és más alkalmazások) felhasználhatják az attribútumban tárolt adatokat a felhasználói fénykép megjelenítéséhez a felületen. Ezenkívül ezeket a képeket a Windows felhasználók avatárának is lehet használni..

Nézzünk néhány egyszerű forgatókönyvet a felhasználói fotók feltöltésére az AD-be és az adatok exportálására egy tartományból a képfájlokba.

A felhasználói fotók fő jellemzői és korlátozásai az AD-ben:

  • Az a felhasználó, amelyben a letöltött fényképet tárolja, a thumbnailPhoto attribútumértékének maximális mérete 100 Kb. Általános javaslat azonban, hogy AD méretű képfájlt használjunk felhasználói fényképként AD-ben 10 Kb-ig és mérete 96 × 96 képpont
  • a fényképek megjelenítéséhez az Outlook 2010 vagy újabb verziókban legalább az AD 2008 séma egyik verziójára van szükség
  • Az AD-ben található sok felhasználói fotó esetén replikációs problémák merülhetnek fel az NTDS.DIT ​​adatbázis növekedése miatt
  • A felhasználóknak joguk van megváltoztatni saját fotóikat AD-ben. Ha delegálnia kell a fényképek feltöltésének képességét más felhasználók számára (például a HR-osztály számára), akkor meg kell adnia a Írási miniatűr fotót a kívánt OU-nak.

Tartalom:

  • Felhasználói fénykép telepítése az AD-ben a PowerShell használatával
  • Töltse fel az AD felhasználói fotót az Exchange Shell segítségével
  • Kép kötegelt importálása az AD-be
  • Töltse fel a felhasználói fényképeket az Active Directory-ból egy fájlba

Felhasználói fénykép telepítése az AD-ben a PowerShell használatával

Ahhoz, hogy egy felhasználói fényképet betölthessen az Active Directory-ban a PowerShell használatával, be kell töltenie a modult aktív telefonkönyv modul mert A windows PowerShell és a Set-ADUser parancsmag segítségével frissítse a thumbnailPhoto attribútumot azáltal, hogy értékként betölti a képfájl tartalmát.

Importmodul ActiveDirectory
$ photo = [byte []] (Get-Content C: \ PS \ admin_photo.jpg -Kódolási bájt)
Set-ADUser vvkuzmin -Csere @ thumbnailPhoto = $ photo

Ugyanaz a sorban:

Set-ADUser vvkuzmin -Csere @ thumbnailPhoto = ([byte []] (Get-Content "C: \ ps \ admin_photo.jpg" - kódolási bájt))

Ezeknek a parancsoknak a végrehajtása után az Active Directory-ban tárolt ügyfélfájl megjelenik az Outlook, Lync, OWA stb. Kliensekben (a replikáció befejezése és a GAL frissítése eltarthat egy ideig)..

Töltse fel az AD felhasználói fotót az Exchange Shell segítségével

A felhasználói fényképek AD-re történő feltöltésének hasonló funkcióit az Exchange Management Shell konzol támogatja. Ezekre a célokra a parancsmag használható Import-RecipientDataProperty.

megjegyzés. Az Exchange 2010 Import-RecipientDataProperty parancsmagja nem tudja betölteni a 10 KB-nál nagyobb képet.

A vvkuzmin fotójának frissítésére szolgáló parancs így néz ki:

Import-RecipientDataProperty -Azonosság „vvkuzmin” -Kép -FileData ([Byte []] $ (Get-Content -Path „C: \ PS \ admin_photo.jpg” -Kódolási bájt -ReadCount 0))

Kép kötegelt importálása az AD-be

A képek kötegelt importálásához sok Active Directory-felhasználó egyszerre szükség van egy CSV-fájlra, amely tartalmazza a fiókok listáját és a hozzájuk tartozó fényképfájlokat. Az import.csv fájl formátuma a következő lehet:

AD_felhasználónév, fénykép
avivanov, C: \ PS \ avivanov.jpg
[email protected], C: \ PS \ jsmith.jpg
pppetrov, C: \ PS \ pppetrov.png

A következő parancs betölti a felhasználók listáját a CSV-fájlból, és frissíti fotóit AD-ben:

Import-Csv C: \ PS \ import.csv |% Set-ADUser -Identity $ _. AD_felhasználónév -Csere @ @ thumbnailPhoto = ([byte []] (Get-Content $ _. Photo -Encoding byte))

Töltse fel a felhasználói fényképeket az Active Directory-ból egy fájlba

Az AD-ből származó felhasználói fénykép menthető grafikus fájlba. Ehhez válassza ki a kívánt felhasználót a Get-ADUser segítségével:

$ ADuser = Get-ADUser vvkuzmin -Properties thumbnailPhoto

És mentse a thumbnailPhoto attribútum tartalmát egy jpg fájlba:

$ ADuser.thumbnailPhoto | Set-Content vvkuzmin.jpg -Kódolási bájt

A következő szkript segítségével töltse fel a képet minden a felhasználók egy adott tárolóból (OU) egy fájlba:

Importmodul ActiveDirectory
$ ADusers = Get-ADUser -Filter * -SearchBase "OU = Felhasználók, OU = Ufa, DC = winitpro, DC = hu" -Tulajdonságok thumbnailPhoto | ? $ _. thumbnailPhoto
foreach ($ ADuser $ ADusers-ben)
$ name = $ ADuser.SamAccountName + ".jpg"
$ ADuser.thumbnailPhoto | Set-Content $ name -Kódolási bájt

És végül, néhány hasznos kérdés. Az első lehetővé teszi azon felhasználók kiválasztását, akiknek fotókészlete van az AD thumbnailPhoto attribútumban

Get-ADUser -Filter * -tulajdonságok bélyegképePhoto | ? $ _. thumbnailPhoto | válassza a Név lehetőséget

A második kérelem lehetővé teszi fotó nélküli felhasználók kiválasztását:

Get-ADUser -Filter * -tulajdonságok bélyegképePhoto | ? (-nem ($ _. indexkép)) | válassza a Név lehetőséget

Nagyon sok harmadik féltől származó segédprogram, amelyek lehetővé teszik a grafikus szerkesztők számára, hogy az AD felhasználók számára fényképeket kényelmesebb formában állítsanak be. Általában azonban működésük felesleges, és a harmadik féltől származó AD-szerkesztő szoftver használatának kockázata meglehetősen jelentős. Sőt, minden változtatás könnyen elvégezhető a PowerShell segítségével.