Where do I begin?

“I’m new to scripting and need a book recommendation.” “Should I learn VBScript or PowerShell?” “What are some good books or resources for learning scripting?”

These are natural and common questions. A few years ago the answers would have been simple. But today if you are just getting started with administrative scripting, the answers only bring more questions. The real question isn’t what book should you read but what technology should you learn? If you are a a SAPIEN blog reader I’m going to assume that the choice comes down to VBScript or PowerShell. The quick answer is to learn both, but I realize that’s not practical. So let’s look at this a bit further and realize that some of this will change once PowerShell v2.0 is released as part of Windows 7 and your adoption of Windows 7.

First, VBScript isn’t going away any time soon and there is a large collective library of VBScript files and a wealth of expertise. Typically, if your administrative scripting needs primarily center around the end-user experience, i.e. logon scripts, computer configuration scripts, desktop management, then VBScript is most likely the better technology. I also recommend VBScript for small IT shops with only a few servers and desktops to manage.

However, if you have more server or network centric needs, then I strongly encourage you to learn PowerShell and make that your scripting language of choice. When PowerShell v2.0 is released this is practically a “no-brainer”. Since v2.0 builds on v1.0, you won’t lose anything in learning PowerShell v1.0.  You’ll also find it easier to manage enterprise solutions such as Active Directory, Citrix, VMWare and more with PowerShell.  Many vendors are offering PowerShell solutions, that go beyond anything you could do with VBScript,often at no cost.

Ok. You’ve decided a technology and need some learning tool recommendations. The first recommendation for either language is to begin identifying blogs, like this one, and network resources like the Microsoft Technet Scripting Center that offer samples, tutorials and information. If are interested in PowerShell, I write a weekly column for MCPMag.com called Prof. PowerShell that offers short lessons on PowerShell fundamentals. Finally I encourage you to use ScriptingAnswers.com as your scripting community center. You’ll find language specific forums, a script repository and helpful members. We strive to leave no question unanswered.



For absolute beginners, I recommend VBScript, WMI and ADSI Unleashed by Don Jones. Don’s writing style is always relaxed and conversational. You’ll pick up all the basics you need with this book. 

Don also authored a series of self-paced training CDs on VBScript that are part of the ScriptingAnswers.com Class on Disc series.

I also recommend a copy of my WSH and VBScript Core: TFM. This is a complete reference guide to Windows Script Host and VBScript written with Windows administrators in mind. Every function, statement, and object is explained with real-world and practical examples.

When you are ready to move on, pick up a copy of Advanced VBScript for Microsoft Windows Administrators by Don Jones and Jeff Hicks. You’ll learn about HTAs, LDAP queries, scripting with databases and more.


There are many places to start with PowerShell, but honestly Windows PowerShell v1.0: TFM 2nd Edition is the best place to start. Everything you need to know about learning PowerShell from the ground up is covered. (If you want to get a jump start on learning PowerShell v2.0, then check out the special Windows PowerShell: TFM 3rd Ed. ) There are other solid PowerShell books on the market and I believe you should have more than one on your shelf. The repetition is good and each author has their own slant on the material which is often educational as well. If you would like a bit more training, there is a set of self-paced training material which is drawn from the PowerShell TFM title.  Working your way through the book with the self-paced material is a great way to learn PowerShell on your own short of instructor led training.