PowerShell: Checking the Syntax of an Exchange Mailbox Export Content Filter

A bit of a niche function this one.  When you perform a mailbox export in Exchange using the New-MailboxExportRequest cmdlet you can specify the ContentFilter parameter.  This allows you to pass an OPATH filter to only export SOME of the content from a mailbox.

One of the examples on the page above is;

New-MailboxExportRequest -Mailbox Tony -ContentFilter {(body -like “*company*”) -and (body -like “*profit*”) -and (Received -lt “01/01/2012”)}

So what if you need to check the syntax of a ContentFilter? Continue reading “PowerShell: Checking the Syntax of an Exchange Mailbox Export Content Filter”

PowerShell: Finding Invalid Mailboxes in Exchange

Mailboxes can me marked as invalid in Exchange;  this usually doesn’t affect the day-to-day function of the mailbox (usually) but it will prevent any changes happening to the object (using the standard Exchange tools).  However, whatever is causing those mailboxes to be marked as invalid might cause problems for other systems that use that directory (such as Office 365 or a meta-directory connected system).

To find all the mailboxes which are marked as invalid you can use the following command from an Exchange PowerShell Window;

Get-Mailbox | Where-Object {!$_.IsValid}

You can use the filter on Get-Mailbox to get a subset of data like;

Get-Mailbox -Filter {Office-Like "HQ"} | Where-Object {!$_.IsValid}

Once you’ve got a list invalid mailboxes you can remediate them