What is PowerShell?

PowerShell is a cross-platform task automation solution made up of a command-line shell, a scripting language, and a configuration management framework. PowerShell runs on Windows, Linux, and macOS.

Command-line Shell

PowerShell is a modern command shell that includes the best features of other popular shells. Unlike most shells that only accept and return text, PowerShell accepts and returns .NET objects. The shell includes the following features:

  • Robust command-line history
  • Tab completion and command prediction (See about_PSReadLine)
  • Supports command and parameter aliases
  • Pipeline for chaining commands
  • In-console help system, similar to Unix man pages

Scripting language

As a scripting language, PowerShell is commonly used for automating the management of systems. It's also used to build, test, and deploy solutions, often in CI/CD environments. PowerShell is built on the .NET Common Language Runtime (CLR). All inputs and outputs are .NET objects. No need to parse text output to extract information from output. The PowerShell scripting language includes the following features:

Automation platform

The extensible nature of PowerShell has enabled an ecosystem of PowerShell modules to deploy and manage almost any technology you work with. For example:

Microsoft

Third-party

Configuration management

PowerShell Desired State Configuration (DSC) is a management framework in PowerShell that enables you to manage your enterprise infrastructure with configuration as code. With DSC, you can:

  • Create declarative configurations and custom scripts for repeatable deployments
  • Enforce configuration settings and report on configuration drift
  • Deploy configuration using push or pull models

Next steps

Getting started

Are you new to PowerShell and don't know where to start? Take a look at these resources.

PowerShell in action

Take a look at how PowerShell is being used in different scenarios and on different platforms.