PowerShell is an automation platform and scripting language developed by Microsoft for simplifying and automating the management of Windows and Windows Server systems.
While PowerShell is primarily a text-based shell, it utilizes Microsoft’s .NET Framework of built-in functionality and objects for managing Windows environments.
PowerShell users can access PowerShell through a command-line shell or the PowerShell Integrated Scripting Environment (PowerShell ISE), which Microsoft designed to help beginners as well as experts work more efficiently with PowerShell.
The PowerShell ISE includes a built-in editor for writing and testing scripts as well as helpful tools and features like IntelliSense tab completion for making it easier to develop and modify PowerShell scripts and cmdlets.
Working with PowerShell
The basic PowerShell command-line console can be opened with the Win + R keyboard combination followed by typing powershell and pressing enter. To launch the PowerShell ISE, simply type powershell_ise instead of powershell after pressing the Win + R keyboard combination.
Commands that are entered through PowerShell are called cmdlets (pronounced command-lets). Cmdlets are Microsoft .NET programs designed to interact with PowerShell. In addition to cmdlets, PowerShell can also execute PowerShell scripts, PowerShell functions and standalone executable programs.
PowerShell also provides full access to COM (Component Object Module) and WMI (Windows Management Instrumentation), enabling administrative tasks to be performed on both local and remote Windows systems.
New Releases and Extensions of PowerShell
The latest version of PowerShell, v5.0, became available in late 2015 as part of the Windows Management Framework 5.0 package that includes updated releases of Windows PowerShell, Windows PowerShell Desired State Configuration (DSC), Windows Remote Management (WinRM) and WMI.
Microsoft also offers an Azure-specific version of PowerShell, now available as Azure PowerShell 1.0, as well as PowerShell Direct, which enables system administrators to run PowerShell commands remotely in the guest OS of a virtual machine (VM) with zero configuration and without needing to worry about security policies, firewall configurations and the host networking configuration.