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
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:
Install-Module –Name ISESteroids –Verbose -Force
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
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
Thus, you need to place your .license file in the following directory:
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 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:
gcm –m isesteroids | select name | sort name | fw –c 3
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:
- In the bottom right status bar area, click the first button. This copies the last console command to the script area. Cool, eh?
- In the top toolbar, click the Toggle Refactoring Addon button.
- 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 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.
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.