Applies to: Exchange Online, Exchange Server 2016

Topic Last Modified: 2016-03-31

This cmdlet is available in on-premises Exchange Server 2016 and in the cloud-based service. Some parameters and settings may be exclusive to one environment or the other.

Use the Remove-AddressList cmdlet to remove existing address lists.

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

Remove-AddressList -Identity <AddressListIdParameter> [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-Recursive <SwitchParameter>] [-WhatIf [<SwitchParameter>]]

This example removes the address list named AddressList1 and all of its child address lists.

Remove-AddressList -Identity "AddressList1" -Recursive

The Remove-AddressList cmdlet can be used in conjunction with the Get-AddressList cmdlet as follows:

  • Use the Get-AddressList cmdlet to get address list information, and then pipe the output to the Format-List cmdlet to get the GUID, distinguished name (DN), or path and name of an existing address list.

  • Use the Get-AddressList cmdlet to get a specific existing address list, and then pipe the output directly to the Remove-AddressList cmdlet.

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 "Address lists" entry in the Email address and address book permissions topic.

By default in Exchange Online, the Address List role isn’t assigned to any role groups. To use any cmdlets that require the Address List role, you need to add the role to a role group. For more information, see the "Add a role to a role group" section in the topic, Manage role groups.


Parameter Required Type Description




The Identity parameter specifies the address list that you want to remove. You can use any value that uniquely identifies the address list. For example:

  • Name

  • Display name

  • Distinguished name (DN)

  • GUID

  • Path   (\<Name>) or [<Container>\<Name>)

If the address list has child address lists that you also want to remove, you need to use the Recursive switch.




The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on if the cmdlet requires confirmation before proceeding.

  • Destructive cmdlets (for example, Remove-* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: -Confirm:$false.

  • Most other cmdlets (for example, New-* and Set-* cmdlets) don't have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.




This parameter is available only in on-premises Exchange 2016.

The DomainController parameter specifies the domain controller that's used by this cmdlet to read data from or write data to Active Directory. You identify the domain controller by its fully qualified domain name (FQDN). For example,




The Recursive switch specifies whether to remove all child address lists. You don't need to specify a value for this switch.

If you don't use this switch, and the address list has child address lists, the command will fail.




The WhatIf switch simulates the actions of the command. You can use this switch to view the changes that would occur without actually applying those changes. You don't need to specify a value with this switch.

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.

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.