A while back I spoke about
The Insecurity of Shared Mailboxes
and how that even though they have an Azure AD Account they should have their logins disabled and access rights ONLY provided via the mailbox.
To make things easier for people I have now created a script that will allow you to view and potentially disable the direct logins for all your shared mailboxes to make them more secure.
The scripts requires that you are already connected to both Exchange Online and Azure AD.
At the top of the script, you’ll find a variable called $secure. If that is set to $false then no changes will be made to your environment, you’ll just get a report like shown above. Shared mailboxes that have direct login enabled will be displayed in red.
Now, if you change the variable $secure to $true then any shared mailbox that is currently enabled for direct connection will have that ability disabled. The output will display two lines for each mailbox that has direct access enabled. The first line indicates that direct logins are enabled and then the second line will show that has now been secured. In this scenario, all that is happening is that the shared mailbox identity is simply being blocked as I outlined in my earlier article.
The last possibility is that the shared mailboxes direct logins have already been disabled, and in this case the results of the script should simply show that result in green.
In summary then, you can run this script with the variable $secure set to $false to just display the direct login condition of your shared mailboxes. You can run this script with $secure set to $true and then not only will the direct login condition of the shared mailboxes be reported but they will all then be blocked for direct login.
You will find this script in my GitHub Office 365 repository at:
https://github.com/directorcia/Office365/blob/master/o365-exo-sharedblock.ps1