Take your PowerShell scripting to the next level with ISESteroids

If you’ve done work as a programmer, you know that an integrated development environment (IDE) can be very helpful indeed in your work. IDEs provide a “shell” around a programming language, giving you conveniences such as keyword expansion, code folding, and debugging.
Latest posts by Timothy Warner (see all)

We IT pros use Windows PowerShell for automation, administration, and configuration management. Many of you are already familiar with the Integrated Scripting Environment (ISE) tool that’s built into Windows Server and Windows Client operating systems. For reference, let me show you the “stock” ISE that ships with Windows 8.1:

The stock Windows PowerShell ISE

The stock Windows PowerShell ISE

Today, I’d like to show you a tool that is almost universally loved by the Windows PowerShell MVPs that I speak with on a daily basis: Dr. Tobias Weltner’s ISESteroids. ISESteroids is a PowerShell module that completely reimagines the Windows PowerShell ISE.

Rather than give you a feature overview, which would take a long blog post series to scratch the surface of ISESteroids, I instead want to walk you through the high-level “what’s in it for me” aspects of the tool and why you may want to consider adding it to your PowerShell administration workstation.

Installing ISESteroids ^

If you’re fortunate enough to be running Windows PowerShell v5 Preview on your development workstation, you can install ISESteroids with a single line of PowerShell:

The Install-Module cmdlet is part of the awesome PowerShellGet module management framework. Tobias keeps the latest ISESteroids version on the public PowerShell Gallery repository.

If you’re running PowerShell v3 or v4, you can download the ISESteroids .ZIP archive and run the included install.bat shell script to place the module in your $PSModulePath location.

ISESteroids runs as a fully functional demo for 10 days, after which you’re required to purchase a license. As of this writing in May 2015, a single-user license costs $109 plus VAT. Tobias is flexible with his ISESteroids enterprise licenses; please see the website for details.

Starting and configuring ISESteroids ^

Once you’ve installed ISESteroids (which isn’t really an “installation” per se because ISESteroids is a PowerShell module), fire up the ISE editor as an administrator and prepare to have your mind blown.

You start ISESteroids from within the ISE by running the following cmdlet:

I show you what the ISE editor looks like with all ISESteroids features enabled in the following screenshot:

ISESteroids in action

ISESteroids in action

Some of the more obvious interface changes you’ll see are the following:

  • Squiggles of different colors in your source code
  • Many, many new toolbar buttons
  • A totally customized status bar (at the bottom of the application)
  • Several new menu entries
  • A number of new add-on panes (which dock to the right side of the application by default)

When you pay for a license, Tobias will send you your license. Initially, I had some problems applying the .license file because I put it in $PSModulePath\ISESteroids. That’s not right.

The best way to go is to click the Settings toolbar button, click the License button, and then, in the ISESteroids License Info dialog box, click Open License Folder. I show you all this in the following annotated screen capture:

Adding your license to ISESteroids

Adding your license to ISESteroids

Thus, you need to place your .license file in the following directory:

C:\Users\username\AppData\Roaming\ISESteroids\License

Some cool ISESteroids productivity enhancements ^

I hope you use profile scripts to customize your PowerShell console environment. You may or may not know that the ISE has a separate profile script. When you open the File menu in an ISESteroids-enhanced ISE session, you’ll have simple access to any and all PowerShell profiles on that computer:

ISESteroids gives us full control over all profile scripts

ISESteroids gives us full control over our profile scripts.

Simple refactoring in accordance with PowerShell best practices ^

Tobias integrated the PowerShell.org community best practices into ISESteroids. In fact, you may not ever need to take advantage of the Script Analyzer module, although you certainly can add it to your ISE scripting session.

Let’s test this out. Pop the following pipeline into the bottom console window in the ISE and run it. You heard me correctly—use the console pane and not the top script pane:

That’s pretty terse, isn’t it? That kind of PowerShell shorthand is fine in a quick console session, but it’s definitely not recommended when you add these statements to a script that you’ll share with other administrators. Here’s what we need to do to automatically clean up our work:

  1. In the bottom right status bar area, click the first button. This copies the last console command to the script area. Cool, eh?
  2. In the top toolbar, click the Toggle Refactoring Addon button.
  3. In the Refactor pane, click Run All to hit our non-standard pipeline with all of ISESteroid’s refactoring capabilities. I show you the result here:

The automatic code refactoring in ISESteroids

The automatic code refactoring in ISESteroids is immensely powerful and saves you a lot of time.

Here are just a handful of refactoring tweaks that ISESteroids made to our pipeline:

  • The #requires clause ensures that the script will run only in Windows PowerShell v2 and later.
  • All aliases and parameters are expanded to their proper names.
  • Commands, parameters, and module names are properly capitalized for better legibility.
  • The use of positional parameters is switched to named parameters.
  • The long pipeline is broken at the pipe character, allowing for line continuation and enhanced script readability.

Conclusions ^

Here are the main reasons why I admire Dr. Tobias Weltner, PowerShell MVP and ISESteroids creator:

  • You know that he uses PowerShell every day, so he knows what features we IT pros most need in an editor.
  • He integrates ISESteroids seamlessly into the ISE, making our learning curves shorter.
  • The module respects and adheres to PowerShell community best scripting practices.
  • Tobias is generous with the trial version and full-version licensing.

Honestly, if you’re serious about being more productive on the job with Windows PowerShell, purchasing an ISESteroids license is truly a “no brainer.” This fact is made even clearer when we consider that the upcoming Nano Server installation option in Windows Server 2016 has no local administration but provides full management via Windows PowerShell WSMan remoting.

Let’s face facts: between the DevOps movement and hybrid cloud architectures, we IT pros need to become proficient with administrative scripting and at least some of the arcane language and practices of full-time programmers. Trust me—it’s fun once you get past your initial (painful) learning curve.

Join the 4sysops PowerShell group!

Your question was not answered? Ask in the forum!

1+
Share
0 Comments

Leave a reply

Your email address will not be published. Required fields are marked *

*

© 4sysops 2006 - 2020

CONTACT US

Please ask IT administration questions in the forums. Any other messages are welcome.

Sending

Log in with your credentials

or    

Forgot your details?

Create Account