Filters in the Exchange Online PowerShell module

The Exchange Online PowerShell module contains nine exclusive Get-EXO* cmdlets that are optimized for high speed, high volume operations, and (after you connect to your organization) gives you access to the hundreds of existing cmdlets in the service. For more information, see Cmdlets in the Exchange Online PowerShell module.

In order to get the most out of filters in the nine exclusive Get-EXO* cmdlets in the module, you need to follow the guidance in this article.

Tip

Version 3.0.0 and later (2022) is known as the Exchange Online PowerShell V3 module (abbreviated as the EXO V3 module). Version 2.0.5 and earlier (2021) was known as the Exchange Online PowerShell V2 module (abbreviated as the EXO V2 module).

Use client-side filtering for the best performance

Server-side filtering uses the available Filter or RecipientFilter parameters on a cmdlet.

Client-side filtering uses the Where-Object cmdlet (also known as where or ?).

Generally, you get much better performance in Exchange PowerShell cmdlets with server-side filtering. However, for the Exchange Online PowerShell module, you actually get better performance when you use client-side filtering. We're working on improving the performance of server-side filtering in the module.

Unsupported filterable properties

The Get-EXO* cmdlets in the module support the majority of filterable properties that are available in their older, equivalent cmdlets. But, there are currently some properties that don't work with filtering in the Get-EXO* cmdlets. These properties are described in the following table:

Cmdlet Unsupported filterable property LDAP Display Name
Get-EXOCASMailbox MemberOfGroup

ExternalDirectoryObjectId
memberOf

msExchExternalDirectoryObjectId
Get-EXOMailbox DeletedItemFlags

LanguagesRaw

MasterAccountSid

MemberOfGroup

RequireAllSendersAreAuthenticated

SCLDeleteThresholdInt

SCLJunkThresholdInt

SCLQuarantineThresholdInt

SCLRejectThresholdInt

deletedItemFlags

msExchUserCulture

msExchMasterAccountSid

memberOf

msExchRequireAuthToSendTo

msExchMessageHygieneSCLDeleteThreshold

msExchMessageHygieneSCLJunkThreshold

msExchMessageHygieneSCLQuarantineThreshold

msExchMessageHygieneSCLRejectThreshold

Get-EXORecipient CountryCode

ExternalDirectoryObjectId

MasterAccountSid

MemberOfGroup

Members

countryCode

msExchExternalDirectoryObjectId

msExchMasterAccountSid

memberOf

member

Supported operators

The following operators are fully supported for all string formats in the Get-EXO* cmdlets in the Exchange Online PowerShell module:

The -like and -notlike operators are limited in using wildcards (*). Specifically, you can only use wildcards at the beginning of a string value, at the end of a string value, or both.

For example, the following text search is not supported:

"UPN -like 'A*B*C'

However, the following searches are supported:

"UPN -like 'A*' -and UPN -like '*C' -and UPN like '*B*'"