100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

PowerShell

IntermediateLanguage10.9K learners

PowerShell is a cross-platform task automation and configuration management framework from Microsoft, combining a command-line shell with a scripting language built around passing structured objects, not just plain text, between commands.

Definition

PowerShell is a cross-platform task automation and configuration management framework from Microsoft, combining a command-line shell with a scripting language built around passing structured objects, not just plain text, between commands.

Overview

PowerShell was created by Microsoft as a modern replacement for the older Windows command prompt and batch scripting, and its defining design choice sets it apart from traditional Unix shells like Bash: commands (called cmdlets) pass structured .NET objects through the pipeline rather than raw text, so a command like `Get-Process` returns objects with real properties you can filter, sort, and select programmatically instead of parsing text output. This object-based pipeline makes complex automation tasks — filtering services, manipulating files, querying system state — far less brittle than text-parsing approaches. Originally Windows-only and tightly integrated with the .NET Framework and Windows Management Instrumentation (WMI), PowerShell was open-sourced and rebuilt as cross-platform "PowerShell Core" (now simply PowerShell 7+) running on .NET, enabling it to run on Linux and macOS alongside Windows. It remains the primary automation and administration language for the Windows ecosystem, deeply integrated with Windows Server, Active Directory, Azure, and Microsoft 365 management tooling, and it's widely used in DevOps pipelines that touch Windows infrastructure. Beyond ad hoc administration, PowerShell supports full scripting with functions, modules, error handling, and remoting (executing commands against remote machines), making it a serious automation language rather than just an interactive shell, and a common alternative or complement to Bash in mixed Windows/Linux environments. It is often mentioned alongside Linux in this space.

Key Features

  • Object-based pipeline instead of plain text between commands
  • Cross-platform since PowerShell Core / PowerShell 7+
  • Deep integration with Windows, Active Directory, and Azure
  • Cmdlet-based command naming convention (Verb-Noun)
  • Built on .NET, allowing direct use of .NET classes and libraries
  • Supports remoting for managing remote machines at scale
  • Full scripting language with functions, modules, and error handling

Use Cases

Windows server and Active Directory administration
Automating Microsoft 365 and Azure resource management
Cross-platform DevOps scripting alongside Linux tooling
System configuration management and deployment automation
Security tooling and incident response (as well as offensive use in security testing)
Batch processing of files and system data as structured objects

Frequently Asked Questions