Azure Cloud Shell Preview

Being a fan of PowerShell and having a lot of customers who are relying on the cloud means that Microsoft’s new ‘Azure Cloud Shell’ brings PowerShell awesomeness to your browser. Yes, I said Browser. To be fair, Microsoft has written up some fairly decent documentation on it and it can be found here – While that is great for a place to start, what about its practical use? Just because a tool is available, doesn’t mean its what you need. In this article we’ll explore any known limitations, upsides and more about this new feature.
Firing Up Azure Cloud Shell
In order to access this new interface, make sure to log into your Azure tenant portal – Once logged in, you can see the PowerShell icon at the very top of the portal:
Continue reading


Exchange 2016 PowerShell Book – Second Edition Release

Dave and I have been working hard and we’ve now created a book that covers the breadth of Exchange 2016’s PowerShell features. With this new edition, we’ve added an additional 100+ pages of brand new content. We now cover these topics in-depth (in addition to all the topics in the first edition):

  • Public Folders
  • Security
  • Unified Messaging
  • Best Practices

The book is currently available at these locations:

Quick PowerShell Stuff 19

Having transitioned more and more to using PowerShell 5.0, instead of 4.0, I thought I would pass along one tip when using it. Typically when working with Exchange PowerShell and listing object attributes. I like to select a single column of the data and past it into a CSV file or documentation I am making. However, in PS 5.0, the default ‘Mark’ in PowerShell has changes. Instead of a single column, the select tool selects entire likes like so:
Continue reading

Exchange 2016 CU Upgrade Failure – ‘Database is mandatory on UserMailbox’

Recently I was contacted by one of my customers that their hybrid Exchange 2016 servers failed while upgrading to Cumulative Update 6 (CU6). They were not able to get past the error. Luckily for them, about 99% of the users in their environment were already moved to the cloud, so the end users were not directly affected by this server being down. The failure had occurred on Step 7 of 11, the Mailbox Role: Mailbox Service stage. So what was the cause? First, we can take a look at the error messages:

The detailed error message provide below in the error message:
Continue reading

Get-Help and Exchange 2016

** Note **
Wanted to make something clear – this is an issue with Windows and PowerShell, Exchange 2016 is not the root cause of this issue. Now on to the article!

A few weeks ago I ran a poll on this and it seems that a fair number of you depend on Get-Help for finding information on PowerShell cmdlets in Exchange 2016. Now, if you are an active user of PowerShell and Exchange 2016, you may have noticed that it is broken. Yes. Broken. But it isn’t broken everywhere. If you have Exchange Server 2016 AND Windows Server 2012 R2 then Get-Help works for you. If you have Exchange 2016 AND Windows Server 2016 then your Get-Help experience isn’t good. For this article, we will cover what is wrong and ways to get around this broken experience.
Continue reading

Get-Help and Exchange 2016 – Where has the quality gone?

A few weeks ago, I posted a poll concerning PowerShell on Exchange 2016 and the Get-Help cmdlets. Here are the results:
As we can see, There is a near 2-1 ration of those who use Get-Help, even occasionally, to those who don’t use it at all. This would seem to indicate that this is a rather integral feature in Exchange that administrators expect to be working. However, since around CU3 for Exchange 2016, any Exchange 2016 server installed on the Windows Server 2016 OS will find Get-Help broken. On the first run of Get-Help for a cmdlet, an administrator is met with:
Wow. What the? So this is a bug. It does not exist in Exchange 2013, of any flavor, and it also does not exist in Exchange 2016 when Exchange is installed on Windows Server 2012 R2. So what is the fix?
Continue reading

Office 365 – Custom Sensitive Information Types

Three years ago I wrote a script to create an XML file to be used for Custom Sensitive Information Types, which you can read HERE.
This script could be used to create an XML file for Exchange 2013 or Exchange 2016. For office 365 the XML file was importable into Exchange Online (ExO). Times have changed. The XML file is no longer something we can import into Exchange Online. With Microsoft’s emphasis on the Security and Compliance Center and the de-emphasis of the crossover features in Exchange Online, this would seem to be a natural progression. If we attempt to connect to ExO and import the new data type with the New-ClassificationRuleCollection, we see that this function has been neutered and unusable:

So what to do? We need to connect PowerShell to the Security and Compliance Center. We need to run these three lines in PowerShell: Continue reading