PowerShell

PowerShell is, in Microsoft’s own words, a cross-platform task-automation solution made up of a command-line shell, a scripting language, and a configuration-management framework. It was conceived by Jeffrey Snover, whose “Monad Manifesto” laid out the vision, and was first released for Windows in 2006 under the name Windows PowerShell. It was created to give Windows administrators a programmable command line comparable in power to the Unix shells, but built on the foundations of the .NET platform rather than on text streams.

The feature that most sharply distinguishes PowerShell from traditional shells is its object pipeline. The documentation notes that, unlike most shells that only accept and return text, PowerShell accepts and returns .NET objects. Commands, called cmdlets and written in a consistent Verb-Noun form such as Get-Process or Set-Item, emit fully typed objects with named properties. When you pipe one cmdlet into another, the receiving command works directly with those properties instead of parsing columns of text, which eliminates much of the brittle string manipulation that text-based shell scripting requires.

As a scripting language, PowerShell is built on the .NET Common Language Runtime, so all inputs and outputs are .NET objects and the full .NET type system is available. The language supports functions, classes, scripts, and modules; an extensible formatting and type system; and built-in support for common data formats such as CSV, JSON, and XML. This makes it well suited not only to interactive administration but to building, testing, and deploying solutions, and it is widely used in continuous-integration and continuous-deployment pipelines. The shell also provides familiar conveniences including command history, tab completion with prediction, aliases, and an in-console help system modeled on Unix man pages.

A major turning point came in 2016, when Microsoft open-sourced PowerShell and released PowerShell Core, built on the cross-platform .NET Core runtime and able to run on Linux and macOS as well as Windows. Development moved to a public repository on GitHub, where the project notes that it began as a fork of the Windows PowerShell codebase. The modern, cross-platform editions, numbered 7 and later, are the actively developed line, while the Windows-only Windows PowerShell 5.1 remains shipped with Windows for compatibility.

Beyond the shell and language, PowerShell anchors a broad automation ecosystem of modules for managing technologies such as Azure, Windows, Exchange, and SQL Server, as well as third-party platforms, and it includes Desired State Configuration for declarative, configuration-as-code management of infrastructure. By bringing the object-oriented pipeline to the command line and then making it portable, PowerShell carved out a distinct and influential place among scripting and automation shells.