This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Download Microsoft Edge
More info about Internet Explorer and Microsoft Edge
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 is
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:
Extensible through
functions
,
classes
,
scripts
, and
modules
Extensible
formatting system
for easy output
Extensible
type system
for creating dynamic types
Built-in support for common data formats like
CSV
,
JSON
, and
XML
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
Azure
Windows
Exchange
Third-party
VMWare
Google Cloud
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.
Installing PowerShell
PowerShell Bits tutorials
PowerShell 101
Microsoft Virtual Academy videos
PowerShell Learn modules
PowerShell in action
Take a look at how PowerShell is being used in different scenarios and on different platforms.
PowerShell remoting over SSH
Getting started with Azure PowerShell
Building a CI/CD pipeline with DSC
Managing Microsoft Exchange