Gli account utente di Active Directory hanno un attributo speciale (thumbnailPhoto) in cui una foto può essere memorizzata come dati binari. Outlook, OWA, Skype for Business, SharePoint e altre applicazioni possono utilizzare la foto memorizzata in questo attributo AD come avatar dell'utente nella loro interfaccia.
Per assegnare una foto ad un account utente in Active Directory usando PowerShell è necessario, per prima cosa, convertire il file immagine in un array di byte, e poi usare il cmdlet Set-ADUser per impostarlo come valore dell'attributo thumbnailPhoto. Le operazioni possono essere eseguita tramite il seguente comando
Set-ADUser Giovanni.Lubrano -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\Temp\foto.jpg" -Encoding byte))}
sostituendo Giovanni.Lubrano e c:\temp\foto.jpg rispettivamente con l'account utente su cui si intende operare e il nome del file, comprensivo di percorso, del file jpg contenente la foto.
 |
FIG 1 - Assegnare una foto all'account utente in AD |
Visualizzando le proprietà dell'account utente da Utenti e computer di Active Directory possiamo verificare, dalla scheda Editor attributi, che all'attributo thumbnailPhoto è stato assegnato un valore. |
FIG 2 - Proprietà account utente, Attributo thumbnailPhoto |
Per eseguire l'operazione inversa, cioè salvare la foto di un account utente presente in Active Directory all'interno di un file JPG, possiamo eseguire un comando simile a
(Get-ADUser Giovanni.Lubrano -Properties thumbnailPhoto).thumbnailPhoto | Set-Content "C:\Temp\foto.jpg" -Encoding byte
 |
FIG 3 - Esportare la foto contenuta nell'attributo thumbnailPhoto in un file jpg |
Per visualizzare tutti gli account utente dotati di foto il comando da eseguire è
Get-ADUser -Filter * -properties thumbnailPhoto | ? {$_.thumbnailPhoto} | Select Name
mentre per visualizzare gli account non dotati di foto
Get-ADUser -Filter * -properties thumbnailPhoto | ? {(-not($_.thumbnailPhoto))} | Select Name
 |
FIG 4 - Visualizzare gli account utente dotati di foto |
Per rimuovere la foto di un account utente resettando l'attributo thumbnailPhoto
Set-ADUser Giovanni.Lubrano -Clear thumbnailPhoto