Top 10 reasons Why you must learn PowerShell?

I always find myself explaining to IT pros who are working on Windows platform, why it is important for them to learn and adapt PowerShell.

I am not trying to prove if PowerShell is better than any other languages or tools like VBScript, Python, Pearl or Batch. But when you are on Microsoft platform, PowerShell has now become an important aspect of your work.

Why Automation?

Before we even start taking about reasons you should learn PowerShell which is used as a tool for Automation, why should you even think about automation? Saving time is not the only factor behind automating the tasks. There are many more factors which justifies the need for Automation:

Get time for something Productive:
we often find ourselves spending time in lot of non-value-add (NVA) steps which are performed without applying any special logic, just by performing steps A, B, C…. in a routine sequence with nothing new. If you translate these NVA steps in to some automated Script, you can do something more productive in the same time.

Delegation of tasks:
Any NVA steps that are automated can be assigned to some junior team member who can simply run the script to achieve the results.

Automation is Fun:
Writing scripts to automate something and then seeing things happening Automagically is Fun. Believe me; you will enjoy seeing your script doing something for you automatically after running it.

Motivate others:
When you write scripts or do automation, you motivate other to do so. Indeed it is impressive to convert those manual efforts into automated scripts. This makes you stand out from the crowd and also others (who are really interested) will definitely follow your footsteps.

In short, scripting and automation is important, which is just one factor behind the reason for learning PowerShell.

But why PowerShell?

Microsoft describes PowerShell as “a task-based command-line shell and scripting language… built on the .NET Framework.” So what??

  • PowerShell is not just a Scripting Language, it is also a Command-line Shell:

There are many instances where you don’t even need to write a script, just running a single line command will fetch you the results that you are looking for.

  • No prior Programming knowledge is required:

Yes indeed it’s true! You don’t need to have any prior scripting or programming knowledge to learn or start using PowerShell. Since PowerShell comes with a very powerful feature ‘Pipeline’ which allows you to perform complex tasks on the output results within the command line itself.

  • PowerShell is object based:

How does that matter? It definitely matters as you have to manipulate the output in order to filter, sort, select certain values and even format the output. When you deal with an object rather than handling plain text output, you will have access to Properties, Methods and Events associated with the same.

  • It is not going away

PowerShell has now become the present and future of Microsoft platform and it is not going away anytime in near future.

It is a requirement in the Microsoft Common Engineering Criteria, and a Server product cannot be shipped without a PowerShell interface.

In many cases Microsoft uses it to build the GUI management consoles for its products. Some tasks can’t be performed in the GUI and can only be completed in PowerShell.

  • Learn once and apply to any Product

You will learn PowerShell just once and your knowledge will be applicable for any product that you use on Microsoft platform. You can pick up your PowerShell skills and take them in any direction - Hyper-V, vCenter, SQL, AD, XenApp, MS Exchange, SCCM, and more…

  • Microsoft says it's important

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 lately.

  • 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.

  • Easy direct access to .Net namespaces/classes

Since PowerShell is built on .Net Framework, and if you are coming from .Net background, you can easily make use of .Net namespaces/classes in your PowerShell scripts or commands. What else, you can even design and build Windows forms in your PowerShell Scripts.

  • If you don’t learn it someone else will ;-)

As we all know, the economy is in a slump, and many companies are downsizing. Now it is needless to mention, with so many advantages of learning PowerShell, everyone who has understood the importance of learning PowerShell, will definitely learn it, if you don’t.

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.

Introduction to the course agenda for this online course on PowerShell