Applies to: Exchange Server 2013, Exchange Online

Topic Last Modified: 2012-08-08

Use the Set-UserPhoto cmdlet to configure the user photos feature that allows users to associate a picture with their account. User photos are stored in Active Directory and appear in on-premises and cloud-based client applications, such as Microsoft Office Outlook Web App, Microsoft Office Lync, and Microsoft SharePoint.

For information about the parameter sets in the Syntax section below, see Syntax.

Syntax

Set-UserPhoto -Identity <MailboxIdParameter> -PictureData <Byte[]> <COMMON PARAMETERS>
Set-UserPhoto -Cancel <SwitchParameter> -Identity <MailboxIdParameter> <COMMON PARAMETERS>
Set-UserPhoto -Identity <MailboxIdParameter> -Save <SwitchParameter> <COMMON PARAMETERS>
Set-UserPhoto -Identity <MailboxIdParameter> -PictureStream <Stream> <COMMON PARAMETERS>
COMMON PARAMETERS: -Identity <MailboxIdParameter> [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-IgnoreDefaultScope <SwitchParameter>] [-WhatIf [<SwitchParameter>]]

Examples

EXAMPLE 1

This example uploads a preview photo to Ann Beebe's user account.

Copy Code
Set-UserPhoto "Ann Beebe" -PictureData ([System.IO.File]::ReadAllBytes("C:\Users\Administrator\Desktop\AnnBeebe.jpg"))

To save the preview photo that was uploaded using the previous command, run the following command.

Copy Code
Set-UserPhoto "Ann Beebe" -Save

To delete the preview photo that was uploaded using the first command in this example, run the following command.

Copy Code
Set-UserPhoto "Ann Beebe" -Cancel

EXAMPLE 2

This example uploads and saves a photo to Paul Cannon's user account.

Copy Code
Set-UserPhoto "Paul Cannon" -PictureData ([System.IO.File]::ReadAllBytes("C:\Users\Administrator\Desktop\PaulCannon.jpg"))
Copy Code
Set-UserPhoto "Paul Cannon" -Save

Detailed Description

The user photos feature allows users to associate a picture with their account. User photos are stored in the user's Active Directory account and in the root directory of the user's Exchange mailbox. Administrators use the Set-UserPhoto cmdlet or the Exchange Administration Center to configure user photos. Users can upload, preview, and save a user photo to their account by using the Outlook Web App Options page. When a user uploads a photo, a preview of the photo is displayed on the Outlook Web App Options page. This is the preview state, and creates the same result as running the Set-UserPhoto cmdlet without using the Save or Cancel parameters. If the user clicks Save, the preview photo is saved as the user's photo. This is the same result as running the Set-UserPhoto -Save command. If the user cancels the preview photo, then the Set-UserPhoto -Cancel command is called.

A user photo must be set for a user before you can run the Get-UserPhoto cmdlet to view information about the user's photo. Otherwise, you'll get an error message saying the user photo doesn't exist for the specified user.

You need to be assigned permissions before you can run this cmdlet. Although all parameters for this cmdlet are listed in this topic, you may not have access to some parameters if they're not included in the permissions assigned to you. To see what permissions you need, see the "Recipient provisioning permissions" section in the Recipients Permissions topic.

Parameters

Parameter Required Type Description

Cancel

Required

System.Management.Automation.SwitchParameter

The Cancel parameter deletes the photo currently uploaded as the preview photo. To delete the photo currently associated with a user's account, use the Remove-UserPhoto command. The Cancel parameter only deletes the preview photo.

Identity

Required

Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter

The Identity parameter specifies the identity of the user. You can use one of the following values:

  • GUID

  • Distinguished name (DN)

  • Display name

  • Domain\Account

  • User principal name (UPN)

  • LegacyExchangeDN

  • SmtpAddress

  • Alias

PictureData

Required

System.Byte[]

The PictureData parameter specifies the photo file that will be uploaded to the user's account. Use the following syntax for this parameter. ([System.IO.File]::ReadAllBytes("<file name and path>")). The following is an example. ([System.IO.File]::ReadAllBytes("C:\Documents\Pictures\MyPhoto.jpg")).

PictureStream

Required

System.IO.Stream

The PictureStream parameter specifies the photo that will be uploaded to the user's account. This parameter is used by client applications such as Outlook Web App when users add a photo. To upload a photo using Windows PowerShell, use the PictureData parameter to specify the photo file.

Save

Required

System.Management.Automation.SwitchParameter

The Save parameter specifies that the photo that's uploaded to the user's account will be saved as the user's photo.

Confirm

Optional

System.Management.Automation.SwitchParameter

The Confirm switch causes the command to pause processing and requires you to acknowledge what the command will do before processing continues. You don't have to specify a value with the Confirm switch.

DomainController

Optional

Microsoft.Exchange.Data.Fqdn

The DomainController parameter specifies the fully qualified domain name (FQDN) of the domain controller that writes this configuration change to Active Directory.

IgnoreDefaultScope

Optional

System.Management.Automation.SwitchParameter

The IgnoreDefaultScope parameter instructs the command to ignore the default recipient scope setting for the Exchange Management Shell session and use the entire forest as the scope. This allows the command to access Active Directory objects that aren't currently in the default scope. Using the IgnoreDefaultScope parameter introduces the following restrictions:

  • You can't use the DomainController parameter. The command uses an appropriate global catalog server automatically.

  • You can only use the DN for the Identity parameter. Other forms of identification, such as alias or GUID, aren't accepted.

WhatIf

Optional

System.Management.Automation.SwitchParameter

The WhatIf switch instructs the command to simulate the actions that it would take on the object. By using the WhatIf switch, you can view what changes would occur without having to apply any of those changes. You don't have to specify a value with the WhatIf switch.

Input Types

To see the input types that this cmdlet accepts, see Cmdlet Input and Output Types. If the Input Type field for a cmdlet is blank, the cmdlet doesn’t accept input data.

Return Types

To see the return types, which are also known as output types, that this cmdlet accepts, see Cmdlet Input and Output Types. If the Output Type field is blank, the cmdlet doesn’t return data.