PowerShell
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