Chapter 1. Welcome to PowerShell


This chapter covers

  • Core concepts
  • Aliases and elastic systems
  • Parsing and PowerShell
  • Pipelines
  • Formatting and output

Vizzini: Inconceivable!

Inigo: You keep on using that word. I do not think it means what you think it means.

William Goldman, The Princess Bride

It may seem strange to start by welcoming you to PowerShell when PowerShell is ten years old (at the time of writing), is on its fifth version, and you’re reading the third edition of this book.


PowerShell v6 is under development as we write this. The appendix covers the changes that this new version will introduce.

In reality the adoption of PowerShell is only now achieving significant momentum, meaning that to many users PowerShell is a new technology and the three versions of PowerShell subsequent to this book’s second edition contain many new features. Welcome to PowerShell.


This book is written using PowerShell v5. It’ll be noted in the text where earlier versions are different, or work in a different manner. We’ll also document when various features were introduced to PowerShell or significantly modified between versions. We treat v5 and v5.1 together as v5 as the differences are relatively minor.

1.1. What is PowerShell?

1.2. PowerShell example code

1.3. Core concepts

1.4. Parsing the PowerShell language

1.5. How the pipeline works

1.6. Formatting and output

1.7. Summary