This week’s tip is short and sweet but I’ve seen the question come up a lot so I feel like it’s worth covering. My favorite PowerShell commands are those that help you accomplish something that you simply cannot do with the UI, my Password Management post has a few good examples of this.
Hiding a Mailbox, Distribution Group, Resource Mailbox, or Shared Mailbox is as easy as checking a box.

But if you go to hide a Mail Contact or Mail User you’ll be sorely disappointed to find there is a gaping hole where your checkbox should be!

Fear not though, after firing up PowerShell and Connecting to Microsoft Online all you’ll need to do is execute the commands below.
First to get a list of the aliases for all your Mail Contacts run the following…
Get-MailContact

Next run the command below substituting the Alias of the Mail Contact you want to hide for the variable in bold.
Set-MailContact –Identity JSmith -HiddenFromAddressListsEnabled $True
And voila, your Mail Contact is now hidden from the Global Address List. If you’d like to get truly wild and hide ALL Mail Contacts then today is your lucky day
Get-MailContact | Set-MailContact –HiddenFromAddressListsEnabled $true