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

 

 

PowerShell: Display A Menu And Get a Valid Choice

While it’s normally best practice to not display anything on the host and to batch as much as possible with PowerShell; sometimes you need a UI.  Here’s a pair of functions to display a menu on the screen, automatically number the possible responses and only return when a valid choice is made. Continue reading “PowerShell: Display A Menu And Get a Valid Choice”

PowerShell: Synchronizing a Folder (and Sub-Folders) Part 10

Hi.  In this part I add some text logging to the script.  Not much else I can say really 🙂 Continue reading “PowerShell: Synchronizing a Folder (and Sub-Folders) Part 10”

PowerShell: Tutorial 2, “Teach a Man to Fish” or Working Out The Command You Need

A series of tutorials, or How To Get Started With PowerShell:  “It’s Awesome” edition.

The title was originally built around “Teach A Man A Cmdlet and he PowerShells for a day;  Teach a Man to Use Get-Command and he PowerShell’s for a lifetime.”  But it got more and more clumsy and convoluted so I finally decided that there really was a limit to my own cleverness.

PowerShell really is quite clever though and makes it really easy to work out the cmdlets you want to use for any task. Continue reading “PowerShell: Tutorial 2, “Teach a Man to Fish” or Working Out The Command You Need”