Windows

10 reasons why you should learn to use PowerShell

PowerShell combines command-line speed, the flexibility of scripting, and the power of a GUI-based admin tool. See why now might be the time to master it.

PowerShell combines command-line speed, the flexibility of scripting, and the power of a GUI-based admin tool. See why now might be the time to master it.


PowerShell is a powerful scripting tool that can greatly expedite your admin tasks. If you haven't had a chance to learn how to use it, you might want to make time for it now. Here are some reasons why the effort will pay off.

Note: This article is also available as a PDF download.

1: It's not going away any time soon

Microsoft has made it clear that PowerShell is here to stay. In fact, PowerShell version 2 is not only included in Windows Server 2008 R2 and in Windows 7, it is enabled by default. Part of the reason why Microsoft has done this is that going forward, many add-on products will be based on PowerShell.

2: Most Microsoft products will eventually use it

Virtually all of the server products Microsoft is producing right now can be managed through PowerShell. From an administrative standpoint, this means that if you become proficient in PowerShell, you will have the skill set necessary for managing most of Microsoft's newer products. The basic built-in PowerShell commands are used in every product that supports PowerShell. However, some server products extend PowerShell to include additional cmdlets.

3: You can't do everything from the GUI any more

When Microsoft created Exchange 2007, it designed the GUI so that it could be used only for the most common administrative functions. Any obscure functions or anything potentially destructive has to be performed using PowerShell. I expect this design philosophy to carry over to other Microsoft products.

4: It can make your life easier

Believe it or not, using the command line can make your life easier. Suppose for a moment that you need to update an Active Directory attribute for a thousand users. Performing the task manually would likely take hours to complete. Using PowerShell, though, you can complete the task using a single line of code.

5: Many GUIs are PowerShell front ends

Many of the GUI interfaces that Microsoft has been designing for its various products are actually front end interfaces to PowerShell. Probably the best known example of this is the Exchange Management Console. Although this utility looks like a standard management tool, it is built entirely on top of PowerShell. Any function you perform through the GUI actually generates PowerShell code that completes the requested task. In many cases, the console even shows you the PowerShell command that was used at the completion of the task.

6: Microsoft certification exams contain PowerShell questions

Microsoft has been adding PowerShell-specific questions to many of its new certification exams. My experience with these exams has been that you don't necessarily have to know the full command syntax, but you do need to know which command you should be using in a given situation.

7: You can use PowerShell commands to manage your domains

If you have domain controllers running Windows Server 2003 with Service Pack 2 or higher, you can install the Active Directory Web Services on at least one domain controller. After doing so, you will be able to use the Windows 7 RSAT Suite to manage Windows 2003 and Windows 2008 domains.

8: It enables interactivity between products

PowerShell is the common thread between all the new server products Microsoft is creating, so I expect to start seeing PowerShell used as a mechanism for providing interactivity between server products. I have yet to see a real world example of this interactivity, but eventually I would expect to be able to use a PowerShell script to work seamlessly between products such as IIS, SQL Server, and Exchange.

9: Microsoft says it's important

Just because someone at Microsoft says that something is important, that doesn't mean I take it as gospel. However, In the October 2009 issue of TechNet Magazine, Microsoft says, "It's safe to say that the single most important skill a Windows administrator will need in the coming years is proficiency with Windows PowerShell."

Such a bold statement is hard to ignore. This is especially true given the fact that this statement mirrors what I've been hearing from various people at Microsoft every time I have made a trip to Redmond lately.

10: If you don't learn it, someone else will

As we all know, the economy is in a slump, and many companies are downsizing. Needless to say, there is a lot of competition for the few IT jobs that are available. Therefore, if you suddenly find yourself looking for another job, your odds of finding one may be better if you can list PowerShell among your skill set.


More PowerShell info

For additional resources, check out the PowerGUI community, the Windows PowerShell homepage, and these TechRepublic articles:

About

Brien Posey is a seven-time Microsoft MVP. He has written thousands of articles and written or contributed to dozens of books on a variety of IT subjects.

8 comments
dave
dave

Please excuse my ignorance, I'm just looking into PS for the first time. My job involves developing apps that automate common business routines. My coding environment usually includes VB, VBA, or VB Script, and SQL Server. Can PowerShell be considered a substitue for VB Script and/or VBA in MS Office app dev?

TravisFx
TravisFx

Ok I've been out of major IT stream for a bit but still have a finger or 2 in it. But this.... I really don't get. MS have flogged GUI over cmd for eons and its been great... Now PS is a must....? Has to be learned and mastered? WHY?!!! This is the same camp that's been railing and sqwacking at Linux and Unix for years...!!! This is BS. Glad I'm not in it anymore!!

riotsquirrl
riotsquirrl

I dutifully installed PS about eighteen months, two years ago, went to my local community college for a class, and seriously almost never use the thing. MS seems to think it's groovy that PS functions return objects, not text, but the arcane backbends you have to use to extract just the info you need -- *if* you can extract it -- are just too darn much trouble. Why can't MS have a *single*, *procedural*, *competent* scripting language that persists from OS to OS like Unix?

matt-the-cat
matt-the-cat

Call it what you like - it's still a DOS shell. GUI it up all you want...it's still a DOS shell. Never went away no matter what they've been hyping to the masses...

davidt
davidt

I agree that powershell should be mastered, but one thing I noticed about this blog (and many others) is that recommendations are given without links to training or resources. Obviously, I'll find the proper resources to train myself. But this is not unlike me sending an email to my users saying "You MUST use Outlook merge to send out mass emails or we will be blacklisted," without telling them how to do it.

info
info

So, let me get this straight. The one major thing that business loves, the ease of administration for Windows through the GUI and the related ease of finding administrators who are just 'good with computers' or relatively low cost, is going away? While I agree that this is a good thing for systems stability and stimulates the need for dedicated, or at least trained, IT staff, this could be a potentially bad move for MS. What's to stop people making the move to Linux on the back end if administration becomes equally as difficult a task?

slatimer76
slatimer76

Going from Exchange 2003 to Exchange 2007 was a switch, but with powershell and the ease of doing things in there has made the switch easier. Where I had to search for things in the GUI in 2003, with the powershell command, it is much quicker for me to find what I need. kudos to powershell.

TexasJetter
TexasJetter

I'll have to admit that I fall more into the 'good with computers' category of admins than the nitty gritty script type. Not that I couldn't make the DOS command line sing back in the day. However when it comes to servers, both email and database, the GUI has enabled me to get them working and manage them will little effort. Is that the best? Probably not, but it has worked to this point. The lack of GUI is one of the things that has stymied me in the Linux front. MS should be mindful that the GUI is what got them to this point. To totally forsake it now would be a major blunder. However from what I could pick up from the article they are keeping the GUI for simple or common admin tasks, but requiring more complex tasks to be from Powershell.