Powershell Studio 2015 Solarized Color Scheme

I’ve been playing around with a trial version of Powershell Studio 2015 an I must say it’s pretty nice! I don’t typically do GUIs with Powershell, but if I did this would be an amazing tool. Overall there are some great features that really provide some value if you need to move up to a professional editor.

I thought I’d share the color scheme I’ve been using for the script editor:


This is a port of Solarized and it looks pretty good in Powershell Studio! If you’d like to add this as a preset scheme just copy the text below and save it in your presets folder at %appdata%’SAPIEN\PowerShell Studio 2015\Editor Presets.

NOTE: I used the font Source Code Pro from Adobe in the screenshot, but since this is not a Windows included font, I used Lucida Console in the preset file. Feel free to change this as you see fit.



Managing Clutter in Exchange Online

Exchange Online Clutter

Clutter is a new productivity aid in Exchange Online that helps save you time by separating your important messages from the rest of the muck that you get on a daily basis. A description of how this feature works can be found here. Clutter is optional and can be enabled by users should they choose to use the service.

Microsoft believes in Clutter so much, however, that they have decided to make it available by default on all new Exchange Online mailboxes starting in June. If this timeline doesn’t work for your organization, or you would rather give your users the choice to turn Clutter on, there are some new Powershell cmdlets that you can leverage.

First, some prerequisites:

1. You need to have an account that has at least the Exchange Service Administrator role in Office 365 and the ability to connect to Exchange Online with Powershell. Instructions to connect can be found here. I also have a module on Github that can make working with Exchange Online and other Office 365 services a bit easier.

2. The Clutter cmdlets will only work on server version 15.1 (Build 166.22). To manage Clutter with Powershell, both the server that you connect to via Powershell and the server that the mailboxes you are managing must be updated to this version. Microsoft is working to make sure that all Exchange Online servers are updated as quickly as possible, but you may still have some mailboxes that are on a prior version. If this is the case you will get an error when targeting those mailboxes with the Clutter cmdlets:


Turning Clutter Off

There is currently no way to disable Clutter from being on by default for your entire tenant – you will have to do this for all your mailboxes now and for any new mailboxes that you don’t want to have Clutter turned on for.  You can disable Clutter manually for a mailbox by running the Set-Clutter cmdlet:

Or you can disable it for all mailboxes:

However, some of your users may have already enabled Clutter and you won’t want to disable it for them. In this case you will want to filter your mailbox results to only the mailboxes that don’t already have Clutter enabled:

You can fully automate disabling Clutter for your current mailboxes here. Make sure you unblock the script and then run:

for details on how to use the script.

Moving Forward

After you have run the above commands to disable the Clutter for the desired mailboxes, you’ll need a plan to sustain this policy for future mailboxes. If you automate mailbox creations with Powershell, then you’ll need to run Set-Clutter against each one to disable Clutter by default. At some point you may want to embrace the on by default strategy and make your users aware of the change. At that point you can just allow new mailboxes to have this enabled.

I hope this post has clarified the administrative controls for Clutter and will help your organization make it’s decision around this new feature.

The O365 Admin Powershell Module – Part 1

The O365 Admin Powershell Module – Part 1

Connecting to Office 365 Services

If you’re already responsible for managing your company’s Office 365 tenant, then you know that sometimes you need to employ Powershell to get things done. The Office 365 Admin Center is pretty capable of handling your basic admin tasks and it’s getting better all the time, but sometimes you need to do something outside of the box or manage settings in bulk. Powershell is the way to get it done.

Exchange Online has the most manageability of all the Office 365 products and since it’s built on Exchange it is fully exposed to Powershell management. The instructions for connecting to Exchange Online in Powershell can be found here. This process is similar to how Exchange would be managed in an on-premise installation. You initialize a remote session to an Exchange server, pass credentials, and then import the commands from that session into your environment.

That’s quite a bit of typing, and this stinks if you have to come in every morning and type this in. Not to mention that this only connects you to Exchange Online. If you want to manage users or licensing you’ll need to connect to Azure Active Directory, and there are more commands still if you want to connect to Skype (formerly Lync) or Sharepoint Online.

The next logical step for an admin who needs to manage Office 365 tenants regularly is to add all these commands to your Powershell profile. A powershell profile script is simply a script that is launched each time you launch Powershell. This provides a way configure your shell environment and can speed up your day-to-day tasks. But why should every admin who manages Office 365 perform the same repetitive tasks and re-create the same profile scripts that every other Office 365 admin has created?

Enter the Office 365 Admin module. With this module you can quickly and easily connect to Exchange Online and all other Office 365 services. Instead of all the commands above, you can now simply type:

You can pick and choose any of the services you would like to connect to, and the service names also support tab-completion for ease of use.