If you're one of the IT Pro guys whose their daily tasks are the administration of a set of desktops, servers, printers and other IT infrastructure components whether its software or hardware, or you're a software developer who develops hundreds of lines of code daily then of course you would always be trying to find a way to automate most of those tasks as much as you can. Actually, when we talk about automation of tasks from IT Professionals' perspective we are talking about the automation of tasks such as managing and troubleshooting Active Directory, DNS, MS Exchange Server 2007, MS Windows Server and the other tools and Products. And from Software Developers' perspective we would be talking about creating a User Interface (UI) test automation scenarios to test your own application easily and faster.
So, how do you think we can do it?? Yes, you're right. The most appropriate ways for this kind of automation is scripting. Let's remember what script is. Script is a set of computer instructions written using one of the scripting languages (e.g. VBScripts, JavaScript, Perl, and of course PowerShell) that is executed on a sequential basis to do a specific task, for example you can write a script to join a computer domain and create a computer account in an Active Directory for that computer or whatever task. What I want to say is that scripting is a very powerful and important tool for any System administrator who is searching for a way to complete his tasks in less time with less efforts and best performance.
What is PowerShell (previously named Monad)?
Windows PowerShell is a new command-line interface, Dynamic Scripting Environment, new programming language, and an interactive shell which is designed specifically for Windows Platform and Microsoft technologies in order to provide a common management automation platform. Also, Windows PowerShell is designed to drastically reduce the time-to-results with consistent vocabulary and syntax. Moreover, reducing the semantic gap as Jeffrey Snover - PowerShell Architect - said "We wanted to close the semantic gap between what admins thought and what they had to type."
Windows PowerShell is a powerful automation technology designed not only for IT Professionals but also Developers. Windows PowerShell is available in Windows Server 2008, Windows 7 by default and in the previous versions of windows (XP, Vista, and Server 2003) through optional windows updates.Unlike the other traditional text-based shells that deal with every output as string which requires to parse the output in order to use it as input to another command, PowerShell deals with everything as an object (.NET object) since its built-on .NET Framework and .NET Common Language Runtime (CLR). Windows PowerShell is now part of Microsoft Common Engineering Criteria (CEC) since 2009 which means that any release for any of Microsoft product will support Windows PowerShell and have PowerShell built-in by default.
Why new scripting language? [Limitations of the current scripting languages]
Why Windows PowerShell?
Since the powerfulness of any shell is measured by its support for pipelining, conditional, and recursive programming (conditional like IF...else statement, recursive like for Loop) and in compare to UNIX shell, Windows Shell was very limited and weak-just command-line console that perform some basic tasks- which doesn't fit administrators' needs and systems complications.
In the past; before windows PowerShell, since MS-DOS (the first MS Shell) the number of technical users was also limited compared to their number today and of course the growth of technology and users needs wasn't too complex like today. For this reason Microsoft started to focus on the non-technical users -the most of computer users - and tended to develop and enhance the Graphical User Interface (GUI). The GUI was introduced in Windows 3.1x with MS-DOS console included in order to provide DOS-Shell in addition to GUI. By the time, the users' needs increased and the IT problems complexity is growing up day to day. As we mentioned, since the basic shell and GUI doesn't fit administrators' needs, the administrators started to find an alternative ways to solve their problems via Scripts and Scripting Languages.
Finally, Microsoft decided that the GUI and the limited shell "CMD.exe" is not enough and their platform need a powerful shell to be designed specifically for Windows environments. Accordingly, they had introduced Windows PowerShell.
Why should you (developer) care?
What makes PowerShell a different shell? (Key features)
Windows PowerShell is now part of:
Conclusion
Of course Windows PowerShell has a lot of new features that makes it a different shell. In this short article I just wanted to focus on the story of Windows PowerShell, why is it created, and it's most important features. Now, it's your turn to visit PowerShell official website, Team Blog, PowerShell Survival Guide , to download, install, learn more, practice, and enjoy.