Preview: PowerShell SE

PowerShell SE is a new Windows PowerShell script editor, and the author invited me to give it a preview. It's currently in beta, and includes some "trial mode" limitations, but it seems complete enough to offer a look at what the tool will eventually be.

Please NOTE: This review is written based on beta software, which may not be feature-complete or fully-functional. I'm writing the review as if the feature set available is, in fact, the final feature set. My opinions and conclusions may change as the product's feature set matures, and I'll attempt to post updated reviews when new versions of the product are released.

This is a script editor only; it does not offer an interactive shell a la PowerShell Plus or even Microsoft's own Windows PowerShell ISE. The UI is clean and modern - almost sparse. The author has chosen to use a very trimmed-down toolbar versus the more-popular (these days) Ribbon-style UI, which consumes more screen space. The result is a vast amount of room in which to work on your scripts - as it should be. The editor is tabbed, enabling you to work on multiple scripts at once. Tabs appear above the toolbar. An output pane can be toggled on and off to display the results of your scripts. Other toggle panes include one for local variables, and another for help. These panes all share a resizable space at the bottom of the window; I wish the help, at least, could be detached and made to float to a second monitor. I also wish more PowerShell script editors would take the path started by PrimalScript, and provide distinct panes for Debug, Verbose, and other output streams; doing so would make script debugging clearer and easier.

I found the Help panel to be near-useless, since it couldn't be floated out of the main window. Having both that and the output pane on - which would be natural enough when working - made both to small to use. The author should consider folks that don't have ginormous screens, and permit these panels to be undocked and floated around to a secondary monitor.

Code hinting ("IntelliSense") features were pretty snappy, but didn't include WMI classes, something that you will find in PowerShellPlus. The code hinting also doesn't understand parameter sets; it was willing to help me use both -class and -list with Get-WmiObject, which isn't permitted since those parameters belong to different, mutually-exclusive parameter sets. That's a common oversight in script editors, but one I wish PowerShell SE (along with some of its competitors) was smarter about. IntelliSense also doesn't provide preferred capitalization, allowing me to type "new-object" rather than correcting it to "New-Object." From a readability perspective, I wish it did provide correct capitalization. The IntelliSense was also buggy: When using New-Object, I could type "-ty" and have it suggest -TypeName; when I typed the additional "p" it switched to -ArgumentList, so when I hit Enter I got an unintended parameter.

The application's Web site advertises IntelliSense for types, but I was unable to make it work reliably. For example, declaring [string]$a = 'hello' and then typing $a. didn't open an IntelliSense menu as I would expect it to.

I was initially at a complete loss for how to run scripts, because I tested PowerShell SE on a freshly-installed machine which has script execution disabled. I had to open a normal PowerShell window, enable script execution, and then go back into the editor. That's a poor choice. Given the shell's new "Bypass" execution policy, I'd rather the editor run scripts within a hosted PowerShell instance, perhaps bypassing the execution policy so that I could edit and test scripts without having to mess with the execution policy. That, according to the documentation in PowerShell, is why "Bypass" is available. At the very least, the editor should offer a way to adjust the policy or at least warn me that I'd have to do so externally.

Like many editors, you have the option to set per-line debugging breakpoints, but not to set breakpoints on commands or variables, which PowerShell can do natively. You also have the option of running a script in its entirety, or only executing a highlighted block of commands, which is convenient. However, you do have to save a script in order to run it, which I found inconvenient. I'm guessing the editor is shelling to PowerShell to run the script, rather than hosting the shell within itself like most editors do.

Debugging works well. If PowerShell tosses an error, the error location is highlighted in the script for easier identification. Sadly, you can't hover over a variable to see its contents. 

There are some other significant drawbacks, which will hopefully be corrected in future releases.
  • Notably missing is any kind of live syntax checking, which most current editors support. You'll have to run your script to spot simpler errors like typos, unclosed constructs, and the like. 
  • There's also no bracket-matching feature to help you figure out where you forgot to close a construct - something every script editor should provide. 
  • The product is only available in a 32-bit build, which was problematic for me in my testing since I kept trying to load the newer 64-bit modules provided with the Windows 7 RSAT. Hopefully a 64-bit version will eventually be supplied.
  • When run in maximized mode, the editor covers the Windows Taskbar. That's appalling, because it makes it impossible to access the Start menu, or other running applications, without first restoring the window or using a keyboard shortcut.
  • The application uses nonstandard window and dialog box chrome, which for me was a bit off-putting. I don't care for applications that try to invent a whole new UI look and feel; just use what Windows gives you, or at least give me an option of having a standardized UI. As-is, the UI reminds me a bit of Adobe AIR applications, which I don't especially like.
The editor doesn't provide any explicit support for remoting, PowerShell jobs, etc. You can access all of those features by including the appropriate commands in your scripts, of course, but you can't - as with the PowerShell ISE - create a runspace to a remote computer using the GUI. There's no source control integration and no other "professional" features; the editor does have the ability to save a colorized script to HTML. 

The program's Web site advertises features like remoting and transcripts; in fact, it simply doesn't stop you from using the native PowerShell features in your script.

All in all, PowerShell SE's first beta is an interesting effort. However, I'm not sure what the author's intentions are with the application. As it stands, it's markedly less functional than the free PowerShell ISE included with PowerShell v2, and it's leagues beneath the equally-free editor included with PowerGUI. I'm not certain what would drive one to choose PowerShell SE over those other free offerings, although perhaps the author plans to add more functionality as time goes on. More strangely, the Web site lists the PowerShell ISE as a system requirement for PowerShell SE. If you've already got the ISE installed, however, there's not really a strong reason to install this product.

One nice point: PowerShell SE is a single, monolithic executable, which means you don't need to install it and could run it from a USB flash drive. If the author sticks with that, and can deliver a level of functionality at least approaching PowerGUI and definitely surpassing the PowerShell ISE, there would be use cases for it. Currently, it's something I'd keep an eye on - but not an editor I'd choose to use. 

Again, this review is for a publicly-released beta product, and the author has not shared with me any plans for expanding or improving the product, or a timeframe for a final release.

UPDATE: Turns out PowerShell SE is based on the built-in ISE, meaning it's basically a super-customized ISE. That makes it interesting from a software developer perspective, but I'm unsure what extra value it brings apart from a perhaps trimmer, non-standard UI. That also explains why the ISE itself is a pre-req. Still, if the author adds valuable functionality to it, I could see it being a lightweight step between the ISE and a third-party editor - right now, though, it's main claim seems to be its "help viewer," which I personally don't find highly usable.

Discuss this Blog Entry 5

on Feb 3, 2011
Don,
"...PowerShell ISE provides code editor (the same WPF text editor as Visual Studio 2010). Nothing more."
- I mean the PowerShell SE uses the WPF text editor from ISE and nothing more. And "a super-customized ISE" isn't correct description. It's two different applications based on the same WPF control. My bad, sorry.

"run selection" - executes the current line (line with cursor) when you don't select anything.

It's really nice preview,
Thank you.

BTW. Yes, ISE is super cool! I love this tool :)








on Feb 22, 2011
Very good review, Don. You've highlighted some things I would have missed. Anyway - I think it's good option to have this kind of product, such 'ISE editor on steroids'. And with ability to edit ps1xml (can't wait!), something all free solution I know of lack, it may be great and powerful addition to ISE (which is present on all win7 machines unlike PowerGUI).
on Feb 2, 2011
A few things I would like to note:
"...the editor does have the ability to save a colorized script to HTML."
- HTML & RTF http://powershelltools.com/images/se/pse_save.jpg

"...PowerShell SE is based on the built-in ISE, meaning it's basically a super-customized ISE"
- PowerShell ISE provides code editor (the same WPF text editor as Visual Studio 2010). Nothing more.

Thanks anyway!






on Feb 3, 2011
Alexey, I'll disagree with your comment about the ISE. The ISE also provides integrated debugging, and in almost exactly the same way that your PowerShell SE does (line breakpoints only). It does a better job of providing variable values during a breakpoint, as well.

While it doesn't provide an in-window help viewer, I think you need to have your viewer float outside the main window to make it truly useful and readable.

The ISE also provides an interactive command prompt, meaning I can quickly run commands to try them out. I realize you provide a "run selection" (as does the ISE), but from a working perspective having to type something, highlight it, and hit a hotkey is cumbersome.

You do provide IntelliSense, which the ISE lacks. However, as I've noted, someone can already get all of those features - and many more, and in most cases better-implemented - in other freely-available tools like PowerGUI.

I also realize, and indicated in the article, that PowerShell SE is in beta. I'm hoping that you continue to develop it, and to add features that take it beyond the ISE's basic functionality. If you have plans in that direction, it might be nice to share them, so that people have an idea of what to expect from your tool going forward.







on Sep 29, 2011
PowerShell SE 2.0 has been released as freeware. Enjoy!

Please or Register to post comments.

What's PowerShell with a Purpose Blog?

Don Jones demystifies Windows PowerShell.

Blog Archive

Sponsored Introduction Continue on to (or wait seconds) ×