Today, I’m going to give you a brief introduction to PowerShell 3.0, the newest version of the PowerShell family that comes built in with Windows Server 2012.

For many years, there has been a controversial topic among the Microsoft and Open Source community about how administrative tasks are performed on each platform. With Windows PowerShell, you can manage and administer your servers both locally and remotely in the good-ol’ fashioned way, using Command Line.

Suppose you have to create 100 Active Directory users with the same set of attributes. Rather than duplicating the accounts or creating another 99 accounts all over again, you can use a simple PowerShell command to import a list of users from a .csv file and add them to your Active Directory instantly, saving a lot of mouse clicks and time.

PowerShell 3.0 supports managing Windows Server 2008 and 2008R2 servers, but requires installing Windows Management Framework 3.0 and .NET Framework 3.0.

PowerShell Remoting

The purpose of PowerShell Remoting is to:

  • Connect to a remote computer
  • Run one or more commands on that computer
  • Bring those results back to your computer

There are three ways to use Windows PowerShell remoting:

  • 1-to1 Remoting
  • 1-to-Many (Fan-out) Remoting
  • Many-to-1 (Fan-in) Remoting

There is a  significant amount of improvements with the release of PowerShell 3.0. Some of them are:

  • Management of all Windows Roles & Features
  • Windows PowerShell Workflow
  • Windows PowerShell Web Access
  • Scheduled Jobs
  • ISE Autosense
  • Robust Session Connectivity
  • CIM integration
  • Module Auto-Loading
  • Session Configuration Files and much more…
I believe the following features are also worth taking a look into:

Windows PowerShell Web Access

This is the coolest feature so far added to the PowerShell in the 3.0 version. Windows PowerShell Web Access is a Windows Server 2012 feature that lets users run Windows PowerShell commands and scripts in a web-based console. All you need is a properly-configured Windows PowerShell Web Access gateway and a client device browser that supports JavaScript and accepts cookies. IT Pros can perform critical management tasks on remote Windows-based servers from devices that have access to an Internet connection and a web browser. In other words, you can use it via your smartphone or laptop on the go.

New Windows PowerShell ISE Features

Windows PowerShell ISE is a GUI application for Windows PowerShell. In Windows PowerShell ISE, you can run commands and write, test, and debug scripts in a single Windows-based GUI. For those people who have used  Putty Connection Manager for SSH access, the good news is PowerShell ISE offers more features with Version 3.0 including Intellisense, multiline editing, tab completion, auto-save, syntax coloring, selective execution,  context-sensitive help, Show Command and much more.

Disconnected Sessions

You can now disconnect from a session without disrupting the commands that are running in the session. You can close the session and shut down your computer. Later, you can reconnect to the session from a different session on the same or on a different computer. This feature is supported only when the computers at both client and server end of the connection are running Windows PowerShell 3.0.

Using Aliases, it provides backward compatibility, script shortening, and easier discoverability (e.g. ls => Get-Child-Item, kill => stop-process). If you are familiar with Bash or any Unix-based scripting language, you can easily transform your knowledge to the PowerShell environment. It also supports command chaining via | (pipe symbol) the same way as Unix, output formatting and output manipulating.

These are a  few examples of how PowerShell 3.0 gives the full power of core system functionality to IT pros. In my personal experience, PowerShell saves time and increases efficiency of system automation rather than performing administrative tasks in the GUI. There is a great collection of PowerShell scripts which can be found at TechNet Script Center . This is a very useful reference for people who are interested in learning and tweaking with PowerShell.

Happy PowerShelling People!