Applies to: Exchange Server 2013, Exchange Online

Topic Last Modified: 2012-12-27

Use the Remove-Mailbox cmdlet to delete the user account associated with a specific mailbox from Active Directory and to process the associated, disconnected mailbox as directed by the specified parameters.

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

Syntax

Remove-Mailbox -Identity <MailboxIdParameter> [-KeepWindowsLiveID <SwitchParameter>] [-Permanent <$true | $false>] <COMMON PARAMETERS>
Remove-Mailbox -Database <DatabaseIdParameter> -StoreMailboxIdentity <StoreMailboxIdParameter> <COMMON PARAMETERS>
COMMON PARAMETERS: [-Arbitration <SwitchParameter>] [-Confirm [<SwitchParameter>]] [-Disconnect <SwitchParameter>] [-DomainController <Fqdn>] [-Force <SwitchParameter>] [-ForReconciliation <SwitchParameter>] [-IgnoreDefaultScope <SwitchParameter>] [-IgnoreLegalHold <SwitchParameter>] [-PublicFolder <SwitchParameter>] [-RemoveLastArbitrationMailboxAllowed <SwitchParameter>] [-WhatIf [<SwitchParameter>]]

Examples

EXAMPLE 1

This example disconnects the user John Rodman's (john) mailbox from the user account and removes the mailbox object from Active Directory. The mailbox remains in the Exchange database for the deleted mailbox retention period configured for the mailbox database.

Copy Code
Remove-Mailbox -Identity contoso\john

EXAMPLE 2

This example disconnects the user John Rodman's (john) mailbox from the user account, removes the mailbox object from Active Directory, and removes the mailbox from the Exchange database.

Copy Code
Remove-Mailbox -Identity contoso\john -Permanent $true

EXAMPLE 3

This example removes John Rodman's mailbox from the Exchange database, assuming the mailbox has already been disconnected from the user. The example uses the Get-Mailbox cmdlet to retrieve the mailbox GUID value using the display name of the disconnected mailbox. This value is needed for the StoreMailboxIdentity parameter of the Remove-Mailbox cmdlet.

Copy Code
$Temp = Get-Mailbox | Where {$_.DisplayName -eq 'John Rodman'}
Remove-Mailbox -Database Server01\Database01 -StoreMailboxIdentity $Temp.MailboxGuid

Detailed Description

Use the Identity parameter alone to disconnect the mailbox from the user and remove the user object from Active Directory. The mailbox object still exists. By default, this mailbox remains in the Exchange database for 30 days, and then is deleted.

Use the Identity and Permanent parameters to disconnect the mailbox from the user, remove the user object from Active Directory, and remove the mailbox object from the Exchange database. The mailbox object doesn't remain in the Exchange database as a disconnected mailbox.

Use the Database and StoreMailboxIdentity parameters to remove a mailbox object from the Exchange database. In this case, the mailbox object has already been disconnected from the user. For example, if you run the Disable-Mailbox cmdlet, the Exchange mailbox object still exists, but is disconnected from the Active Directory user object. You can use the Database and StoreMailboxIdentity parameters to remove this disconnected mailbox object.

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

Database

Required

Microsoft.Exchange.Configuration.Tasks.DatabaseIdParameter

The Database parameter specifies the database that contains the mailbox object. You can use one of the following values:

  • GUID

  • Database name

This parameter must be used in conjunction with the StoreMailboxIdentity parameter. The Database parameter can't be used with the Identity parameter. If you've disconnected a mailbox from its associated user and want to remove the mailbox object from the Exchange store, use the Database and StoreMailboxIdentity parameters.

Identity

Required

Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter

The Identity parameter identifies the mailbox object that you want to remove.

This parameter accepts the following values:

  • Alias

    Example: JPhillips

  • Canonical DN

    Example: Atlanta.Corp.Contoso.Com/Users/JPhillips

  • Display Name

    Example: Jeff Phillips

  • Distinguished Name (DN)

    Example: CN=JPhillips,CN=Users,DC=Atlanta,DC=Corp,DC=contoso,DC=com

  • Domain\Account

    Example: Atlanta\JPhillips

  • GUID

    Example: fb456636-fe7d-4d58-9d15-5af57d0354c2

  • Immutable ID

    Example: fb456636-fe7d-4d58-9d15-5af57d0354c2@contoso.com

  • Legacy Exchange DN

    Example: /o=Contoso/ou=AdministrativeGroup/cn=Recipients/cn=JPhillips

  • SMTP Address

    Example: Jeff.Phillips@contoso.com

  • User Principal Name

    Example: JPhillips@contoso.com

The Identity parameter can't be used with the Database parameter.

StoreMailboxIdentity

Required

Microsoft.Exchange.Configuration.Tasks.StoreMailboxIdParameter

The StoreMailboxIdentity parameter specifies the mailbox object to remove. The StoreMailboxIdentity parameter is used in conjunction with the Database parameter to remove the mailbox object from the Exchange database. If you've disconnected a mailbox from its associated user and want to remove the mailbox object from the Exchange store, use the Database and StoreMailboxIdentity parameters.

Arbitration

Optional

System.Management.Automation.SwitchParameter

The Arbitration parameter specifies that the mailbox for which you are executing the command is an arbitration mailbox. Arbitration mailboxes are used for managing approval workflow. For example, an arbitration mailbox is used for handling moderated recipients and distribution group membership approval.

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.

Disconnect

Optional

System.Management.Automation.SwitchParameter

This parameter is reserved for internal Microsoft use.

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.

Force

Optional

System.Management.Automation.SwitchParameter

The Force switch specifies whether to suppress warning or confirmation messages. This switch can be used when the task is run programmatically and prompting for administrative input is inappropriate. If the Force switch isn't provided in the command, you're prompted for administrative input. You don't have to specify a value with this parameter.

ForReconciliation

Optional

System.Management.Automation.SwitchParameter

This parameter is reserved for internal Microsoft use.

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.

IgnoreLegalHold

Optional

System.Management.Automation.SwitchParameter

The IgnoreLegalHold switch ignores the legal hold status of the mail user and allows you to remove the mailbox that's on legal hold.

Caution:
After you remove a mailbox, you can't include it in a discovery search. Depending on the command parameters you use, removed mailboxes are either purged immediately or when the deleted mailbox retention period expires. Check with your organization's legal or Human Resources department before disabling a mailbox that's on legal hold.

KeepWindowsLiveID

Optional

System.Management.Automation.SwitchParameter

This parameter applies to objects in the cloud-based service. It isn’t available for on-premises deployments.

The KeepWindowsLiveID parameter preserves the Microsoft account (formerly known as a Windows Live ID) that's associated with the deleted mailbox.

Permanent

Optional

System.Boolean

The Permanent parameter, when used in conjunction with the Identity parameter, specifies whether to disconnect the mailbox from the user, remove the associated user object from Active Directory, and remove the mailbox object from the Exchange database. The two possible values for this parameter are $true or $false. The default value is $false.

PublicFolder

Optional

System.Management.Automation.SwitchParameter

The PublicFolder parameter specifies that the mailbox to remove is a public folder mailbox. Public folder mailboxes are specially designed mailboxes to store the hierarchy and content of public folders. You have to include this parameter to remove a public folder mailbox.

RemoveLastArbitrationMailboxAllowed

Optional

System.Management.Automation.SwitchParameter

The RemoveLastArbitrationMailboxAllowed switch specifies whether the mailbox that you're trying to use is the last arbitration mailbox in the organization.

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.