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.
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…
Windows PowerShell Web Access
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.
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 http://technet.microsoft.com/en-us/scriptcenter/bb410849.aspx . This is a very useful reference for people who are interested in learning and tweaking with PowerShell.
Happy PowerShelling People!