Before you do this, you need to have the Active Directory module for PowerShell installed. You can find out about installing and using the Active Directory module for PowerShell on Microsoft's TechNet site, here:
Active Directory Administration with Windows PowerShell
Active Directory Cmdlets in Windows PowerShell
Note that there are constraints on the sizes and formats supported for the thumbnailPhoto Active Directory attribute. As a general guideline, keep your images to 96x96 pixels and under 10Kb.
Now, for the fun bit! Let's assume we have user Crusoe, and we have saved Crusoe's photo to C:\temp\crusoe.jpg
In two lines of code, we can update his photo.
Get the photo, using the Get-Content PowerShell cmdlet, using the encoding type byte. Store the photo as a byte array in the $photo variable. Then update Active Directory using the Set-ADUser cmdlet, passing the byte array ($photo) to the thumbnailPhoto attribute.
$photo = [byte[]](Get-Content "C:\temp\crusoe.jpg" -Encoding byte) Set-ADUser Crusoe -Replace @{thumbnailPhoto=$photo
To shorten this to one line of code, we could write this as;
Set-ADUser Crusoe -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\temp\crusoe.jpg" -Encoding byte))}
Wholla! Easy hey?!
very easy!! short solution for a long problem... :)
ReplyDeletethank you
active directory photo