Chapter 6. The pipeline: connecting commands

 

In chapter 4, you learned that running commands in PowerShell is the same as running commands in any other shell: you type a command name, give it some parameters, and hit Enter. What makes PowerShell special isn’t the way it runs commands, but rather the way it allows multiple commands to be connected to each other in powerful, one-line sequences.

6.1. Connect one command to another: less work for you

PowerShell connects commands to each other using something called a pipeline. The pipeline provides a way for one command to pass, or pipe, its output to another command, allowing that second command to have something to work with.

You’ve already seen this in action in commands such as Dir | More. You’re piping the output of the Dir command into the More command; the More command takes that directory listing and displays it one page at a time. PowerShell takes that same piping concept and extends it to greater effect. In fact, PowerShell’s use of a pipeline may seem similar at first to how Unix and Linux shells work. Don’t be fooled, though. As you’ll come to realize over the next few chapters, PowerShell’s pipeline implementation is much richer and more modern.

6.2. Exporting to a CSV or an XML file

Run a simple command. Here are a few suggestions:

  • Get-Process (or Ps)
  • Get-Service (or Gsv)
  • Get-EventLog Security -newest 100

6.3. Piping to a file or a printer

6.4. Converting to HTML

6.5. Using cmdlets that modify the system: killing processes and stopping services

6.6. Common points of confusion

6.7. Lab