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”

PowerShell: Export All Exchange Mailbox Folder Permissions In A Format For Further Processing: Part 2

This is an update to my function to extract Mailbox folder permissions as PowerShell objects, allowing various forms of processing.

The main script is here.

In this update I’ve made the function skip some default folders it can’t process, treat the root of the mailbox better and improved the logging.

Continue reading “PowerShell: Export All Exchange Mailbox Folder Permissions In A Format For Further Processing: Part 2”

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

Hi. Here’s another update on the Sync-Folder script. The script itself is at that link but in this post I go over the changes I made and how they work.

The main addition is the support for -WhatIf (so you can test the script runs without it making changes).  In addition I fixed some odd bugs with the Filter and Exceptions parameters.  Plus some more Verbose logging and I tidied up the script a bit (removing some of the cmdlet aliases and replacing them with the full commands). Continue reading “PowerShell: Synchronizing a Folder (and Sub-Folders) Part 9”