I’ve already looked atPrimalScript and PowerShell Plus, so it’s time to look at the third major PowerShell-specific commercial script editor: PowerGUI Pro. This is also available in a free edition, but I’ll be focusing on the one you pay for.
PowerShell Editor Roundup: PowerGUI Pro
This is a tough one to write about. First, PowerGUI’s main schtick isn’t script editing. Really, it’s main selling point is the fact that you can manipulate PowerShell stuff WITHOUT scripting. Basically, Quest (and anyone else, really) provides PowerPacks, which “teach” PowerGUI how to operate stuff like Active Directory, Exchange, and so forth. It’s generating PowerShell scripts under the hood, and you can actually see those and modify them - so it’s a neat way to get a “starting point” for a script. As the product has matured, its script editor has become more full-featured, so it’s worth a writeup here.
Not affecting its score, since I didn’t evaluate this for the other two editors, I did find PowerGUI’s editor to be a bit sluggish when starting up (although no slower than Microsoft’s ISE). I expect it’s written in .NET, and the Framework isn’t a speed demon in some cases, so that might be part of what I’m seeing.
First section: Basic editing features. They’re pretty much all here, including syntax highlighting and code completion and hints. In fact, it provides hinting for WMI classes and namespaces (type “Get-WmiObject -class” to see what I mean). Code folding is provided for functions and other constructs. There is some support for live syntax checking (although there’s room for improvement - it didn’t catch every syntax error I threw at it), and there are multiple undo levels. Undo information is not persistent, so when you close the editor, your undo history is lost. There’s auto-indentation for keeping your scripts looking nice. Four stars out of five, here; the editing features are more mature than PowerShell Plus, and only somewhat less so than PrimalScript’s.
Assistance features: There’s no alias-to-cmdlet expansion, something only PrimalScript currently offers. There is, however, a VERY nice snippets feature that surpasses PrimalScript’s. When inserting a snippet, you can quickly tab through fill-in points to more rapidly complete the snippet. This is a very fast way to code, and it’s well-implemented. PowerGUI itself is, in large part, a gigantic script wizard, and its ability to generate scripts for a variety of admin tasks is absolutely unparalleled by any other product of this kind. So, five full stars in this section.
PowerGUI provides full support for .PSM1 and .PSD1 files, so it can be used to construct PowerShell modules. It does not offer a script-to-EXE packager, which is a high-demand feature amongst admins, especially those who want to create an EXE that can launch scripts under alternate credentials. Three stars for this section on script packaging and distribution.
Integration features: PowerGUI doesn’t include a database browser or means to test SQL queries, nor does it offer a specific WMI query browser (however, within the non-editor portion of PowerGUI, there is a WMI browser for local and network machines). There’s no integrated FTP client. It does not offer specific capabilities for XML editing. It does, however, offer an integrated interactive command-line - although it’s a bit hidden under the ambiguously-named “Go” menu. This is a key feature: The ability to quickly move between interactive and scripting “modes.” Full hinting and completion is offered in the interactive area, making this one of the better implementations. 3 stars, despite the lack of FTP, XML, SQL, and WMI - simply on the strength of that command-line prompt. As a bonus, you can also retrieve code from (and publish scripts to) the community PoshCode.org repository. I appreciate Quest integrating with this community repository rather than creating their own proprietary one. That actually pushes me over the edge to 3.5 stars, even though I don’t normally award half a star.
Remote management: As near as I can tell, the editor doesn’t offer any integration with PowerShell v2 remoting. I’d love the ability to be able to open a tab using Enter-PSSession, for example, or to run a script against a list of computers using a dialog box (which might let me save different sets of computer names for various tasks). That’s an area where a GUI can be a time-saver vs. the command-line, and leveraging the PowerShell functionality shouldn’t be hard. So, zero stars, here.
Debugging: You can easily and visually manage line-based breakpoints, and debug your script. A side pane details all variables in use, along with their values, making debugging faster. I believe PowerGUI is actually leveraging PowerShell’s own debugging functionality, which is impressive and provides a consistent experience. You can also “run to cursor” and “execute selection,” both excellent tools for debugging longer scripts. Five full stars here - I’m impressed with the debugger.
Under “Advanced features,” there’s no visual forms builder or file comparison / diff tool. There is, however, source control integration - something I love to see - so I’d normally offer 2 stars here. PowerGUI Pro, however, offers something unique in this product category: Mobile Shell. Essentially, is a Web service that lets you execute PowerShell scripts from a mobile device, using a Web browser. Clever - and it even includes code-completion features. So, four stars for this innovative approach that I’m sure some admins will find invaluable.
For “PowerShell Environment,” I note that debugging can either be done in a single PowerShell runspace, or you can force a new PowerShell session to be generated for each debugging run-through. Love it. It takes time to understand the differences between those approaches, but I love having the option. You do have the option to load PowerShell profile scripts - invaluable for bringing in various modules and whatnot automatically - and File menu options let you quickly access those profile scripts for review or modification. I didn’t see any way to apply a digital signature to a script, which is baffling - PowerGUI is the only product without such a built-in mechanism (although see below on “add-ons;” I’m betting this feature is obtainable). Four stars, here.
Finally, the “overall” category. I found PowerGUI to be cleanly designed and functional. The GUI offers sufficient customization opportunities (such as toolbar buttons). I wish for separate Output and Debug panes, a la PrimalScript, but that doesn’t exist - all output is directed to a single window. There’s a visual context-sensitive help for PowerShell cmdlets, although I can’t find any documentation for the editor itself (although it’s frankly uncomplicated enough that a manual might not be needed, and there’s a wiki at http://wiki.powergui.org/index.php/Script_Editor). Four stars.
Last up: How well can this replace PowerShell.exe as your main PowerShell environment? Fairly well, I think. It certainly provides an experience similar to Microsoft’s own ISE, with a lot of extra features and capabilities. That doesn’t play into the official rating, but it’s an important consideration.
So the final score looks like 69%, which ties PowerGUI Pro with PrimalScript, placing it just slightly ahead of PowerShell Plus (which has a new version in beta, by the way, which will probably up the ante a bit).
On July 7th, 2010, I'll post a wrap-up article with my final notes on the three editors I've reviewed, as well as my take on who "wins" this little comparison. Stay tuned.
I have to temper all of the above with a caveat: In its most recent version, PowerGUI provides an API that other folks can use to enhance the editor. There may well be add-ons that provide some of the “missing” functionality I’ve noted above; I’m focusing just on the core product as delivered by Quest. If you use PowerGUI and want to note the availability of a particular feature in an add-on, by all means drop a comment below and tell the world! There’s also a list at http://powergui.org/kbcategory.jspa?categoryID=387. In fact, I did find add-ons for script signing, online publishing, and more - had I considered all of the available add-ons in this review, PowerGUI would have scored a bit higher and been in the lead, points-wise. Something to keep in mind.
My PowerShell home page offers access to the latest blog articles, along with PowerShell FAQs - why not check it out?