What is PowerShell?

What is PowerShell?

An automation solution combining a scripting language, a command-line shell, and a configuration management framework, PowerShell is cross-platform. Microsoft Windows, Linux, and Mac OS X all support PowerShell.

Shell

The PowerShell command shell combines the best features of other popular command shells. PowerShell accepts and returns .NET objects in contrast to most shells that only accept and return text. Among its features are:

  • Robust command-line history
  • and tab completion 
  • aliases commands and parameters
  • Command chaining pipeline
  • Unix-style console help

Scripting language

Scripting languages such as PowerShell are commonly used for automating system management. In CI/CD environments, it's also used for building, testing, and deploying solutions. PowerShell runs on the .NET Common Language Runtime (CLR). It uses .NET objects for input and output. There is no need to parse the output text to extract information. Among the features of PowerShell are:

  • Extensible with functions, classes, scripts, and modules
  • Flexible output formatting
  • Extensible type system for creating dynamic types
  • Built-in support for common data formats like CSV, JSON, and XML

Management of configurations

Configuration as code (Configuration as Desired State Configuration (DSC)) in PowerShell is a way to manage your enterprise infrastructure. It allows you to:

  • Design declarative configurations and deploy repeatable scripts
  • Monitor configuration drift and enforce configuration settings
  • Deploy configuration using push or pull models

Next steps

Getting started

Do you have no idea where to begin with PowerShell? Check out these resources.

Installing PowerShell

PowerShell 101

PowerShell Bits tutorials

PowerShell Learn modules

PowerShell in action