Chapter 3. The Dime Tour

Scripting and system programming are symbiotic. Used together, they produce programming environments of exceptional power.

—John Ousterhout, creator of Tcl

PowerShell provides rapid turnaround during development for a number of reasons. It eliminates compile time, it’s an interpreter and makes development more flexible by allowing programming during application runtime, and it sits on top of powerful components, all connected by the .NET framework.

If you want to write PowerShell scripts, you need to learn the PowerShell syntax and its building blocks—like cmdlets and functions—and how to tap into PowerShell’s ecosystem, including the .NET Framework, third-party DLLs, and DLLs you create.

There’s a lot to cover, even in the dime tour, so let’s get started.

The Object Pipeline: The Game Changer

These 63 characters are what hooked me when I saw my first PowerShell demo:

Get-Process | Where {$_.Handles -gt 750} | Sort PM -Descending

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    965      43   173992     107044   602   157.34   2460 MetroTwit
    784      21    88196      83588   290    19.84   5776 chrome
    952      44    39456      20100   287    29.27   2612 explorer
    784      34    34268       2836   109     4.56   3712 SearchIndexer
   1158      28    18868      14048   150     6.21    956 svchost
    779      14     3784       3900    36     4.46    580 lsass

This object pipeline conveys key concepts in PowerShell’s value proposition: maximizing effort and reducing time. Here are the highlights:

  • Using cmdlets (Get-Process ...

Get Windows PowerShell for Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.