PowerShell ISESteroids

Last week, PowerShell MVP Tobias Weltner released ISESteroids, an add-on in the form of a PowerShell Module that Supercharges your ISE. And this is a literal Supercharge! Tobias wrote an Article for PowerShell Magazine giving folks a walkthrough of the product so I won’t repeat any of that here, but rather I will share my experience of using it and my first impressions. I’ll start with the backstory relationship I’ve had with the ISE.

The PowerShell ISE is not something I have ever been that fond of using. Not that it is not a fantastic tool, it is, particularly since PowerShell v3 with all of the enhanced goodness, I have just considered myself a bit more of a power user and needed a little more from an IDE/ISE. At home I primarily use SAPIEN PowerShell Studio but at work I’ve long stuck with PowerGUI Script Editor. I do love PowerGUI for it’s simplicity but I have found it’s not the most stable Editor out there (constantly crashing and requiring restarts in my Environment) but because of the way that I work I really like to use the Variable Explorer, so I can track what is within my variables at a given time, particularly during debugging and Step-Throughs. On my work machine I also have constraints around what I can install. On my laptop I am able to install software, however there are licensing considerations to take into account in the enterprise. PowerGUI is on our ‘Authorised’ list but beyond that, it really is only the PowerShell ISE. I have wanted to move to the VDI solution intended for people who BYOD (so I can use my Macbook and all of my personal stuff in the office for work) but this is where I am strictly limited to the PowerShell ISE and cannot even install PowerGUI. So, with the current version of the ISE lacking some key functionality I need for the way I work it just wasn’t an option. For me, the ISE has really only been something I use when I have to i.e. I am helping a colleague and they have no alternative or are struggling along with Notepad. I hope to see a more advanced ISE and perhaps full integration into Visual Studio in the future, but for now, we have the ISE which does not meet what I would consider my ‘Power User’ needs.

It wasn’t long after Tobias shared the news of the release with the PowerShell MVP’s via email that I had arrived at the office, keen to download and try this out. The bit that caught my attention most in his email was that it required no software installation. This was simply a module that you load and it transforms the ISE. Surely this is too good to be true?!

Deployment is simple, nothing more than a simple download, unblock, unzip, copy and paste into your Modules folder (that’s the personal one in your profile, not the one that Microsoft use :P). Once you have this deployed, pop open the ISE and type ‘Start-Steroids’ and you’re up and running! As I say, I won’t go into how everything works as Tobias has already documented that here but what does the whole thing mean to me? Well, this is HUGE!

First off, the most important feature to me in the Editors I currently prefer is there. The Variable Monitor. However, this one is already more sophisticated than PowerGUI, it allows you to view the variables from a particular scope or all scopes and even more so, track the changes to a variable through a Custom List, so you’re only seeing the Variables you care about at a single time rather than having to look through everything! The features listed in Tobias article for PowerShell Magazine include Visual Helpers, Instant Help, Instant Completion, Auto Indent, Navigation Bar Enhancements, Smart Selection, Block Commenting, Variable Monitor, Debugger Enhancements, Script Pane Management, Code Signing, Decompiling Cmdlets, Creating Functions from Selections and the ability to Turn Modules into Functions. This and a whole lot more that Tobias is still publicly documenting.

I have to admit I am rarely this excited over tools and editors, but this is something different and it excites me for a few reasons. From what I can tell and understand from the email trails at this point:

  1. This has largely been implemented using the AST (Abstract Syntax Tree), $PSISE and things you can do with PowerShell natively under the hood, after all, it’s a Module! This shows the real Power of PowerShell
  2. Tobias has clearly approached this from the angle of simplicity. Rather than create a completely new tool or plug-in in a different language he has taken the ISE and the existing capabilities and extended it while keeping it clean, simple and straightforward at the same time. I found myself many times when I was trying it out thinking “wouldn’t it be good if this did x …. Oh! It DOES!”
  3. This extension requires no software installation. This is very important because in environments like mine with Software Restrictions in place, this is a ‘legal’ way to get an Editor you need without having to try to fight the system. Just awesome!

You should be aware, this is a Commercial venture. However, a 10 day trial is offered and the licensing is very reasonable. I think paying for licensing in exchange for support is always a good idea. After all, I want to worry about the projects I am working on, not having to hack and adapt extensions I have downloaded if the original author decides to drop it. In my scenario, if I weigh up that the cost of a license gives me something that has everything I need and I can use it on a machine that restricts me from installing other licensed software the cost is definitely negligible. Who knows, the company may even pay for it … especially since in my case this means I can give up my laptop and go full BYOD with a ‘Generic VDI’, supporting their IT strategy even further. That is … once I get PowerShell v3 or v4 deployed to that VDI Image of course!

In ISESteroids, Tobias has done a fantastic job in really bringing out the potential that is hidden in the PowerShell ISE and in doing so, he has created something that we can readily use to make our PowerShell ISE experience that much better and perhaps overcome the challenges of working in environment with Software Restrictions, but also, he has shown what you can do with limited development knowledge and the existing capabilities of PowerShell, which leads me to wonder how many other projects like this are about to spin up and how much further either they or Tobias can take it!

I love a number of the commercial and free tools out there this week, but ISESteroids can replace certainly my requirement for PowerGUI Script Editor on my work machine (though not the PowerGUI Administrative Console and PowerPacks) and helps me further towards moving to full BYOD. All round, very impressed. If you do nothing else with PowerShell this week, download ISESteroids and give it a try, it will definitely not be time wasted.


Default ISE

Default ISE View

ISE Steroids Enhancements
Steroids ISE View

Categories: Powershell

Tags: ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: