Applies to: Exchange Server 2007
Topic Last Modified: 2007-06-08

Use the Remove-Message cmdlet to delete a message from a queue on a computer that has the Hub Transport server role or the Edge Transport server role installed.


Remove-Message -Identity <MessageIdentity> [-WithNDR <$true | $false>]
Remove-Message -Filter <String> [-Server <ServerIdParameter>] [-WithNDR <$true | $false>]


Parameter Required Type Description




The Filter parameter requires an expression that specifies the property value criteria for the messages that you want to remove. The expression includes a property name that is followed by a comparison operator and value. The following message properties are valid criteria for the Filter parameter:

  • DateReceived   The date that the message was received.

  • ExpirationTime   The time that a message will expire.

  • FromAddress   The Simple Mail Transfer Protocol (SMTP) address of the sender of a message. This value is taken from MAIL FROM: in the message envelope.

  • Identity   An integer that represents a particular message and an optional server and queue identity.

  • InternetMessageId   The value of the Message-ID: header field. This property is expressed as a GUID followed by the SMTP address of the sending server, as in this example:

  • LastError   A text string of the last error recorded for a message.

  • MessageSourceName   A text string of the name of the component that submitted this message to the queue.

  • Queue   Specifies the identity of the queue that holds the message. Enter the queue identity in the form of Server\destination, where destination is a remote domain, mailbox server, or persistent queue name.

  • RetryCount   The number of times that delivery of a message to a destination was tried.

  • SCL   The SCL property specifies the spam confidence level of the message. Valid SCL entries are integers 0 through 9. An empty SCL property value indicates that the message hasn't been processed by the Content Filter agent.

  • Size   The size of a message.

  • SourceIP   The IP address of the external server that submitted the message to the Exchange organization.

  • Status   The current message status. Message status options are Active, Retry, Suspended, PendingSuspend, and PendingRemove.

  • Subject   A text string that represents the e-mail subject. The value is taken from the Subject: header field.

You can specify multiple filter criteria by using the -and comparison operator. Property values that are not expressed as a single integer must be enclosed in quotation marks.




Use the Identity parameter to specify the MessageIdentity integer that represents a particular message and an optional server and queue identity. The syntax for this parameter is as follows:

  • Server\QueueIdentity\MessageIdentity

  • QueueIdentity\MessageIdentity

  • Server\*\MessageIdentity

  • MessageIdentity




Use the Server parameter to specify the name of the server to connect to by using remote procedure call (RPC) that contains the queues that hold the messages that you want to remove. Enter the Server parameter as a host name or a fully qualified domain name (FQDN). If this parameter is not used, the local server is queried.




Use the WithNDR parameter to specify whether a non-delivery report (NDR) is returned to the sender of a message. The default behavior of this parameter is set to $true. This parameter can be used with both the Identity parameter and Filter parameter sets.

Detailed Description

The Remove-Message cmdlet deletes one or more messages that are in a queue on a Hub Transport server or an Edge Transport server. A message that is being transmitted to multiple recipients might be located in multiple queues. If you specify an Identity parameter, the message will be removed from a single queue if that identity matches only a single message. If the identity matches more than one message, you will receive an error. To remove a message from more than one queue in a single operation, you must use a filter. If you try to remove a message that is currently being delivered, the message status will change to PendingDelete. Message delivery will not be interrupted, but if the delivery fails and causes the message to re-enter the queue, it will then be removed.

You must use an Identity parameter or a Filter parameter. These two parameter sets are mutually exclusive.

To run the Remove-Message cmdlet, the account you use must be delegated the Exchange Server Administrator role and local Administrators group for the target server.

To run the Remove-Message cmdlet on a computer that has the Edge Transport server role installed, you must log on by using an account that is a member of the local Administrators group on that computer.

For more information about permissions, delegating roles, and the rights that are required to administer Microsoft Exchange Server 2007, see Permission Considerations.

Input Types

Return Types


Error Description


Exceptions Description


The following example shows how to remove all messages that meet the following criteria:

  • The messages are sent from the specified sender's SMTP address.

  • The messages are queued on the Hub Transport server or the Edge Transport server on which the command is run.

The following example also shows how to suppress the NDR.

For more information about how to use the Exchange Management Shell to perform queue viewer tasks, see Using the Exchange Management Shell to Manage Queues.

Copy Code
Remove-Message -Filter {FromAddress -eq ""} -withNDR $false