I recently got a press release about "Fast Track Scripting Host" (http://fasttrackscript.com), and when I saw an ad for their product I figured it was time to check it out. The product alleges to be "the one stop shop for scripting admins," and "a replacement for VBScript, PowerShell, Bat files, KiXtart, and all other Windows scripting tools." That's quite a bold set of statements!
FastTrack is a product you have to install on any computer where you wish to execute your finished scripts. It can be used for logon scripts, but it will need to be deployed to your client computers. The cost - including the first year of maintenance - is as high as $18/seat and as low as $5.93 a seat in quantities of more than 10,000. So a 5,000-seat shop is going to pay about $36,000 for the first year. That's a hefty investment, so let's look at what the product gives you in return.
FastTrack is a scripting language - it's just a very simplified, task-specific scripting language. In fact, it strikes me as remarkably similar to KiXtart, which was originally intended to make logon scripts easier to write. It has a lot of built-in functionality that would be common to logon scripts:
If UserIsMemberOf SalesStaff Then ConnectShare J:,\\AcmeServer\SalesShare
Two quick examples from their Web site. The emphasis is on each line of code accomplishing some task, rather than more complex programming constructs - although as you can see, the language is very similar to both VBScript and KiXtart.
The current version of the product (6) is heavily focused on logon scripts, although it also includes support for unattended software installation, Active Directory, and a few other areas.
After using the product for a few hours, it works exactly as described - but I don't think it's something I myself would buy, or that I'd recommend to my customers. Here's why: The problem we all had with VBScript was less its complexity and more the fact that it couldn't do everything. It was all well and good until you ran into some task that just wasn't possible, because Microsoft hadn't given VBScript any "hook" into that task. So VBScript was great for a lot of things - and horrible at others. FastTrack will be the same way, because you'll be stuck with whatever functionality the vendor chooses to build into it. I'm sure they'll continue updating the product for as long as its economically feasible, but that doesn't mean you'll immediately be able to do everything YOU need to be able to do.
First, let me state that I think the logon script problem domain is a bit overstated. As we move more and more of our clients to Windows Vista and Windows 7, more and more of what logon scripts used to do can be accomplished with no scripting whatsoever, by using Group Policy objects and Group Policy Preferences. Printer mapping, drive mapping, and so forth are all becoming easier, and I think administrators ought to keep that in mind.
My other big problem is in how the vendor positions PowerShell in particular as "programming," and plays on the fear many administrators have of programming. While PowerShell HAS scripting capabilities, it is not a "scripting language," and you can be (as I've said before) very effective with PowerShell without needing to learn to program. That said, PowerShell IS Microsoft's way forward with administrative automation. You're going to have to learn something - FastTrack may well offer a shorter learning curve, but it isn't a zero learning curve. Are you going to invest in that, which might not be available in your next job, or would you rather invest in something standardized and first-party (Microsoft) supported that WILL be in whatever Microsoft-based environment you work in?
My last and biggest problem with FastTrack is in how the company presents itself in comparison to PowerShell. I worked for SAPIEN Technologies for years, and our biggest competitor was Windows Notepad. I know how tough it is to compete against first-party software like PowerShell - but unfortunately FastTrack's marketing team has gone a little off the deep end with their comparison chart at http://www.fasttrackscript.com/Docs/ComparisonChart.aspx. Some examples:
- PowerShell requires "multiple script lines" to create/update/delete registry values. Not true: By leveraging the HKCU: and HKLM: drives, you can perform these tasks with single commands, just as you could create/update/delete a text file with a single command.
- Moving AD users, computers, groups, and OUs also requires "multiple script lines" in PowerShell. Not true if you're using either the Quest or the Microsoft AD commands, both of which are free and supported back to Win2003 domains. In fact, both of those sets of commands can accomplish far more in AD than FastTrack can.
- Graphical menus are "not possible natively" in PowerShell - hardly true. Not simple (although SAPIEN's PrimalForms and upcoming Visual PowerShell products will vastly simplify the creation of GUIs within PowerShell scripts).
- Create/update/delete files and directories in PowerShell "requires multiple script lines." Outright untruth: Simple commands like Type, Del, Copy, Move, Ren, and so forth accomplish these tasks just as they always have in Cmd.exe and even MS-DOS.
- Query system information also "requires multiple script lines." Not true: Get-WmiObject can retrieve a wealth of information with a single command. Query and control services requires "multiple script lines," another untruth: Get-Service, Stop-Service, Start-Service, Set-Service, and so forth are all simple commands with straightforward syntax.
- Log events requires "multiple script lines" - nope. Write-EventLog. One command. I'm picking and choosing examples, here, but in general the entire case for FastTrack is, as best, vastly overstated. Looking at their proprietary scripting language, I could duplicate most of those tasks in PowerShell with a single command - and being able to do those things with a single command is the product's entire selling point.
- "Send email natively" requires "multiple script lines." No, it requires you to run Send-MailMessage, a single command - much as in their product.
One area where FastTrack excels: Permissions management. PowerShell's reliance on Get-ACL and Set-ACL, both of which require significant understanding of underlying .NET Framework structures, is awful. I hate mucking around with permissions in PowerShell, I really do. FastTrack provides easier "SetDirPermissions" and "SetDirOwner" style commands that I think Microsoft could take a cue from. That said, I find XCacls.exe incredibly easy to use, and it works great from within PowerShell. Still, if I were writing scripts that needed to do a lot of permissions management, I'd look hard at FastTrack - although the price may be a bit steep for just that.
There are some miscellaneous stuff that FastTrack does which is, in fact, tougher to do in PowerShell: Setting desktop wallpapers, for example. A few things, and probably too few to justify the price tag since there are ample examples on the Web of how to do those things in PowerShell (and ultimately, it doesn't matter if it's 50 lines of code if all you're doing is copying and pasting to make it work).
FastTrack also has a very nice editor for its proprietary language, and the company is correct in that PowerShell's native editor (the PowerShell ISE) is minimally-featured. That said, PowerGUI is an excellent (and free) editor that far surpasses FastTrack's, and commercial editors (PowerGUI Pro, PowerShell Plus, PrimalScript) are light years beyond what FastTrack offers - and they cost a tiny fraction of the price. PrimalScript, for example, goes for $299 - less than the cost of 20 seats for FastTrack. Even with a $249 SAPIEN maintenance plan, PrimalScript costs less than 31 seats of FastTrack. Do you have more than 31 seats in your organization? PowerShell Plus and PowerGUI Pro cost even less at $145 and $199 respectively.
As a "complete replacement for PowerShell," FastTrack's marketing team is really stretching the truth. The whole point of PowerShell is its open extensibility, even by third parties. PowerShell can manage Exchange, SharePoint, SQL Server, System Center products, and many Windows components (with more on the way) including IIS and Active Directory; of all these, FastTrack includes only partial support for Active Directory - hardly making it a "complete replacement" for PowerShell. And that's ultimately my point: Microsoft has dozens of product teams churning out PowerShell commands for you to use; FastTrack is one company that can never hope to turn out the same amount of administrative functionality.
Yes, PowerShell is more complex to learn. No question. It's a matter of investment: My feeling is that the investment you spend in learning a proprietary language like FastTrack will pay off very little (not to mention having to convince the boss to shell out for it); the bigger investment in PowerShell will pay off exponentially more, even if you write only simplistic "scripts" in PowerShell and stick primarily with executing commands.
But there are definitely administrators out there who are TERRIFIED of anything that even remotely resembles scripting, who may find FastTrack to be more approachable and easier to learn. In those cases - go for it! My experience with the product shows it to be capable and well-made. In fact, once you start using it and realize that you really ARE scripting, you may be inclined to give PowerShell another look. Of course, since PowerShell costs you nothing, it might be nice to give it a look first, just to make sure. Despite the many crazy-complicated examples you may see on the Internet, performing basic administrative tasks with PowerShell is actually much more like running command-line tools in Cmd.exe.
In short, I think FastTrack may be a valuable product for an administrator who, for whatever reason, (a) refuses to learn PowerShell, (b) has needs that fit entirely within what FastTrack delivers, and (c) doesn't anticipate moving beyond his or her current job anytime in the future, thus expanding his or her needs and requirements. For anyone else, I continue to believe PowerShell is an incredibly valuable investment. I'm not saying that because I'm passionate about PowerShell; that's the REASON I'm passionate about PowerShell.
Let me acknowledge to the naysayers out there and admit that PowerShell is not a cross-platform nirvana, is not an end-all be-all tool, and will not solve every problem. That is not the position I'm taking. My position IS, however, that PowerShell is more capable, more valuable, more extensible, and more flexible than FastTrack. My position is also that FastTrack's makers aren't being completely honest with you in their comparison chart and other literature. I also acknowledge that FastTrack may be easier to learn that PowerShell - but I'll stipulate that it's because PowerShell can do so much more. If you were to ONLY focus on those parts of PowerShell that do what FastTrack does, I bet you'd find a similar learning curve in both cases. Looking at this list of commands that FastTrack supports (in their documentation), I can find single PowerShell commands that correspond to about seven-eighths of them.
Is FastTrack better than VBScript? Yes, for the tasks that FastTrack is able to complete. No question. VBScript was never specifically made for administration - its use as an administrative tool is almost accidental. It's a generic scripting language; in most cases, the real work isn't being done by VBScript, but by various COM objects that all look and work differently and are really tough to learn without a programming background. If your choice was FastTrack or VBScript, and your needs fell within FastTrack's capabilities, I'd tell you to scrounge up the cash for FastTrack if you could do so.
Should you take a look at FastTrack? Yes, absolutely - you should never take some writer's word for anything when you can get your own look for free (a 45-day trial is available at http://www.fasttrackscript.com/Download/Default.aspx). However, read through the marketing literature with the grains of salt I've tried to provide. Don't fall into the trap of thinking that PowerShell is a "scripting language" that is ALWAYS complex, because for many of the tasks FastTrack accomplishes, PowerShell is no more complex than FastTrack (e.g., running a single command to accomplish a single task). If you decide that FastTrack is a fit for your company - awesome. My overriding goal for all technology is "whatever tool gets the job done fastest, wins." If you hate PowerShell and think that FastTrack is greater than sliced bread - good for you! I'm sure FastTrack's authors will appreciate your enthusiasm, and I'm sure you'll be successful. I just want you to be able to make an INFORMED decision.
Your thoughts? Does a simplified, proprietary, task-specific scripting language beat out PowerShell in your environment? Why or why not?