Visualizzazione post con etichetta foto. Mostra tutti i post
Visualizzazione post con etichetta foto. Mostra tutti i post

lunedì 25 aprile 2022

PowerShell: Gestire la foto dell'account utente in Active Directory utilizzando l'attributo ThumbnailPhoto

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.
Assegnare una foto all'account utente in AD
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.
Proprietà account utente, Attributo thumbnailPhoto
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
Esportare la foto contenuta nell'attributo thumbnailPhoto in un file jpg
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
Visualizzare gli account utente dotati di foto
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






lunedì 27 aprile 2020

MS Exchange: Aggiungere una foto all'account utente tramite EMS

Nell'articolo MS Exchange: Rimuovere la foto associata all'account utente tramite EMS è stato mostrato come rimuovere la foto di un utente tramite Exchange Management Shell e il cmdlet Remove-UserPhoto. In questo articolo vedremo, invece, l'operazione opposta ovvero quella di associare una foto all'account utente tramite EMS. Il cmdlet utilizzato allo scopo è Set-UserPhoto. Con tale comando la foto verrà memorizzata all'interno dell'account di Active Directory dell'utente e nella directory radice della casella di posta di Exchange. Gli utenti possono comunque caricare, visualizzare in anteprima e salvare una foto utente nel proprio account utilizzando la pagina Opzioni di Outlook sul Web oppure da Outlook accedendo al menu File e, nella sezione Informazioni, cliccando sul link Cambia presente sotto la foto (si veda FIG 1).



MS Exchange, foto associata all'account utente
FIG 1 - MS Exchange, foto associata all'account utente

Sintassi


Set-UserPhoto
   [-Identity] <MailboxIdParameter>
   [-Cancel]
   [-Confirm]
   [-GroupMailbox]
   [-DomainController <Fqdn>]
   [-IgnoreDefaultScope]
   [-PhotoType <String>]
   [-WhatIf]

   [<CommonParameters>]

Set-UserPhoto
   [-Identity] <MailboxIdParameter>
   -PictureData <Byte[]>
   [-Confirm]
   [-DomainController <Fqdn>]
   [-GroupMailbox]
   [-IgnoreDefaultScope]
   [-PhotoType <String>]
   [-WhatIf]

   [<CommonParameters>]

Set-UserPhoto
   [-Identity] <MailboxIdParameter>
   [-PictureData <Byte[]>]
   [-PictureStream <Stream>]
   [-Preview]
   [-Confirm]
   [-DomainController <Fqdn>]
   [-GroupMailbox]
   [-IgnoreDefaultScope]
   [-PhotoType <String>]
   [-WhatIf]

   [<CommonParameters>]

Set-UserPhoto
   [-Identity] <MailboxIdParameter>
   -PictureStream <Stream>
   [-Confirm]
   [-DomainController <Fqdn>]
   [-GroupMailbox]
   [-IgnoreDefaultScope]
   [-PhotoType <String>]
   [-WhatIf]

   [<CommonParameters>]

Set-UserPhoto
   [-Identity] <MailboxIdParameter>
   [-Save]
   [-Confirm]
   [-DomainController <Fqdn>]
   [-GroupMailbox]
   [-IgnoreDefaultScope]
   [-PhotoType <String>]
   [-WhatIf]

   [<CommonParameters>]



Parametri

-Cancel
Consente di eliminare la foto attualmente caricata come anteprima.

-Confirm
Consente di specificare se mostrare o nascondere la richiesta di conferma.

-DomainController
Il parametro permette di specificare il controller di dominio utilizzato da questo cmdlet. Il domain controller va specificato come FQDN (Fully Qualified Domain Name). Ad esempio ServerDC01.mycompany.com. 

-PhotoType
Questo parametro è riservato all'uso interno da parte di Microsoft.

-GroupMailbox
Il parametro è necessario per modificare i gruppi di Office 365. 

-Identity
Tale parametro specifica la mailbox/account dell'utente su cui si desidera intervenire. Al parametro può essere passato un qualsiasi valore che identifica la mailbox in maniera univoca come:
GUID
Distinguished name (DN)
Dominio\Account
Nome dell'entità utente
LegacyExchangeDN
SamAccountName
Indirizzo SMTP
Alias 

-IgnoreDefaultScope
L'opzione IgnoreDefaultScope indica al comando di ignorare l'impostazione dell'ambito dei destinatari predefinita per la sessione di Exchange Management Shell e di utilizzare l'intera foresta come ambito. In questo modo, il comando consente di accedere a oggetti di Active Directory che non sono attualmente disponibili nell'ambito predefinito.
L'utilizzo di tale parametro presenta le seguenti restrizioni:
  • Non è possibile utilizzare il parametro DomainController. Il comando utilizza automaticamente un server di catalogo globale appropriato.
  • È possibile utilizzare solo il DN per il parametro Identity. Non vengono accettate altre forme di identificazione, ad esempio alias o GUID.


-PictureData
Il parametro PictureData consente di specificare il file di foto che verrà caricato nell'account dell'utente. Questo parametro utilizza la sintassi ([System. IO. file]:: ReadAllBytes ("<nome file e percorso>"))

-PictureStream
Il parametro PictureStream specifica la foto che deve essere caricata sull'account utente. Questo parametro viene utilizzato dalle applicazioni client come Outlook sul Web quando gli utenti aggiungono una foto. Per caricare una foto tramite PowerShell, utilizzare il parametro PictureData per specificare il file di foto.

-Preview
L'opzione Preview consente di caricare una foto di anteprima per l'account utente. La foto di anteprima è l'oggetto Photo caricato nell'account dell'utente, ma non viene salvato. Ad esempio, se un utente carica una foto nelle opzioni di Outlook sul Web per visualizzare un'anteprima prima di salvarla. Se si utilizza l'opzione Anteprima per caricare una foto di anteprima, è necessario eseguire il comando Set-UserPhoto -Save per salvarlo come foto dell'utente.

-Save
L'opzione Save consente di specificare che la foto caricata sull'account utente verrà salvata come foto utente.

-WhatIf
L'opzione WhatIf consente di simulare le azioni del comando. È possibile utilizzare tale opzione per visualizzare le modifiche che verrebbero applicate senza effettivamente applicarle. Con questa opzione non è necessario specificare alcun valore.



Esempi


Esempio 1
Set-UserPhoto -Identity GLUBRANO -PictureData ([System.IO.File]::ReadAllBytes("C:\Foto.jpg"))
Viene caricata e salvata la foto specificata sull'account utente GLUBRANO.

Esempio 2
Set-UserPhoto -Identity GLUBRANO -Cancel

Esempio 3
Set-UserPhoto -Identity GLUBRANO -PictureData ([System.IO.File]::ReadAllBytes("C:\Foto.jpg")) -Preview; Set-UserPhoto GLUBRANO -Save
Questo esempio mostra come utilizzare due comandi per caricare e salvare l'anteprima di una foto sull'account utente di GLUBRANO. Con il primo comando viene caricata una foto di anteprima nell'account utente mentre il secondo comando Salva la foto caricata come anteprima della foto.



martedì 16 maggio 2017

MS Exchange: Rimuovere la foto associata all'account utente tramite EMS

Per rimuovere una foto associata ad un'account utente in ambiente MS Exchange 2013/2016 è possibile agire tramite EMS (Exchange Management Shell) utilizzando il cmdlet Remove-UserPhoto. La sintassi del comando è la seguente

Remove-UserPhoto -identity <IdentificativoMailbox>

oppure

Remove-UserPhoto -ClearMailboxPhotoRecord <SwitchParameter> -Identity <IdentificativoMailbox>

MS Exchange, foto associata all'account utente
FIG 1 - MS Exchange, foto associata all'account utente


Parametri principali


Identity
Il parametro Identity specifica l'identità dell'account utente. Il parametro accetta un qualsiasi valore che consenta di identificare l'account in modo univoco come:
GUID
Nome distinto (DN)
Dominio\Account
Nome dell'entità utente
LegacyExchangeDN
SamAccountName
Indirizzo SMTP
Alias 


ClearMailboxPhotoRecord
Il parametro ClearMailboxPhotoRecord è disponibile solo per il servizio basato su cloud e indica che la foto eliminata da una casella di posta viene considerata vuota anziché rimossa. Non è necessario specificare un valore per questa opzione.



Esempi


Esempio 1
Remove-UserPhoto -identity GLUBRANO
Elimina la foto associata all'account GLUBRANO

Esempio 2
Remove-UserPhoto -identity giovanni.lubrano@contoso.com -Confirm:$false
Rimuove la foto associata all'account identificato dall'indirizzo giovanni.lubrano@contoso.com senza chiedere conferma prima di procedere.