Windows PowerShell

Guy recommends:
Free config generator

Solarwinds Config Generator

This CG will put you in charge of controlling changes to network routers and other SNMP devices.

Download your free Config Generator



Windows PowerShell - Format-Table (ft)

Windows PowerShell Scripting - Format-Table (ft)

Format-Table, or ft for short, controls the formatting of the output of your Windows PowerShell commands.  Whenever presentation of information is important, pipe the script's output into Format-Table.  On this page I will show you examples of this straightforward, but important command.

Windows PowerShell Format-Table Topics

 ♣

Format-Table - Simple Examples

Scenario: we wish to investigate processes running on workstation or a Windows Server.

Pre-requisites:
PowerShell and .Net framework are installed on your computer.
You are at the prompt PS>  Or if you have PowerShell 2.0, launch the ISE.

Example 1a
Let us get started with an example using the default formatting:

# Preliminary example no Format-Table yet
Get-Process

The 'problem' is that the name of the process is on the right, and we have columns in the output which are of no interest.

PowerShell Format-Table

Example 1b
Now let me introduce Format-Table so that we can control which properties to display in the output.  Let us suppose that we are only interested in 'Handles'.

# Example of PowerShell Format-Table
Get-Process | Format-Table processName, handles -auto

PowerShell Ft

Note 1:  Thanks to Format-Table we now have the name of the process in the first column.

Note 2: -auto prevents the output spreading to the full width and consequently, the -auto parameter makes the figures easier to read.  To see the effect try the above command without -auto.

Troubleshooting Format-Table

About the only thing that can wrong with Format-Table is forgetting the pipe (|) before the command.  The secret is to get the main command working then use (|) to pipe the output into Format-Table.  From there you list the names of the properties you wish to display.

Format-Table comes into its own when dealing with Get-WmiObject classes.  Because the output contains more than 5 properties the default layout is courtesy of Format-List; I find that I like to select my properties then call for Format-Table.

Guy Recommends: SolarWinds Engineer's Toolset v10Engineer's Toolset v10

The Engineer's Toolset v10 provides a comprehensive console of utilities for troubleshooting computer problems.  Guy says it helps me monitor what's occurring on the network, and the tools teach me more about how the system itself operates.

There are so many good gadgets, it's like having free rein of a sweetshop. Thankfully the utilities are displayed logically: monitoring, discovery, diagnostic, and Cisco tools.  Download your copy of the Engineer's Toolset v 10

Format-Table - Intermediate Examples

Example 2a:
Time to see which properties of Get-Process are available, then we can fine tune our Format-Table command.

# Example of PowerShell Format-Table for properties
Get-Process | Get-Member -Membertype property

Example 2b: Even here, I cannot resist using Format-Table to filter which column gets exported to the file.

$Proc = Get-Process | Get-Member -Membertype property
$Proc | Format-Table name | out-file procprop1.txt

Note 3: It's not really necessary to introduce a variable, $Proc. However, one advantage of this technique is that it saves problems with our script word-wrapping to the next line.

Example 3a: Let us choose some different columns in the output, for example, BasePriority and HandleCount:

# Example of PowerShell Format-Table for multiple items
Get-Process | Format-Table name, handlecount, basepriority

Example 3b: Let us see what happens is we add -auto.

# Example of PowerShell Format output for multiple items
Get-Process | Format-Table name, handlecount, basepriority -auto

  ˚

Format-Table - Advanced Examples

Sort-object (Can be abbreviated to 'Short')

Example 4:
Suppose you want some order in your output, no problem, call for Sort-object.

$Proc = Get-Process |sort-Object -descending basepriority
$Proc | Format-Table name, handlecount, basepriority -auto

Note 4: -groupBy This parameter offers a different method of aggregating the data.

Example 5:

Clear-host
$Proc = Get-Process |sort-Object -descending basepriority
$Proc | Format-Table name, handlecount -groupby basepriority -auto

Note  Out-GridView: PowerShell v 2.0 introduces a new cmdlet to control data display.  See more on how to pipe the results into out-GridView.

Format-Table Alias Ft

With Microsoft, there are always at least three ways of doing everything, what seems like redundancy when you are an expert, seems like perspective when you are a beginner.  One obvious example is that you can abbreviate format-Table to ft.  As you increase your range of PowerShell commands, keep an eye out for another PowerShell Alias, for example gci (Get-Childitem).

Here are alternative methods of achieving the above objectives, each example is designed to develop your binocular vision, hence see the target more clearly.  For example, if you experiment with format-wide and format-list you will extend your range of formatting options.

PowerShell Ft Alias Examples

Example 1c [Use in conjunction with Example 1a and 1b above]

# Example of PowerShell Format output with ft
Get-Process | ft processName, handles, PagedMemorySize -auto

Learning points.  You can substitute ft for Format-Table.  Also you can research other properties, for example PagedMemorySize.

Example 2c

Clear-host
Get-Process | Get-Member -Membertype method |ft name

Learning points.  In addition to property, you can research an object's method.  For instance, in other scripts you may wish to employ the .kill() method.

Example 5b:

Get-Process | ft name, handlecount -groupby basepriority -auto

Learning points.  It's not essential to use variables.  This is a simpler example focusing on the -groupby switch.

Guy Recommends:  A Free Trial of the Orion Network Performance Monitor (NPM) v10Review of Orion NPM v10

Solarwinds' Orion performance monitor will help you discover what's happening on your network.  Also this utility will guide you through troubleshooting; the dashboard will indicate whether the root cause is a broken link, faulty equipment or resource overload.  Because it produces network-centric views, the NPM is intuitive to navigate, and you can export the results to Microsoft Visio.

Perhaps Orion's best feature is the way it suggests solutions.  Moreover, if problems arise out of the blue, then you can configure Orion NPM v10 to notify members of your team what's changed and how to fix it.

If you are interested in troubleshooting, and creating network maps, then I recommend that you take advantage of Solarwinds' offer and download a free trial of Orion's Network Performance Monitor.

PowerShell Format-Table Parameters

We have already seen the -auto parameter, to research more switches try

# Extra parameters for PowerShell to Format output
Clear-host
Get-Help Format-Table -full

One of my favourite Format-Table parameters is -groupBy

Format-Wide

How to Discover More Formatting Cmdlets

Clear-host
Get-command -verb format

In addition to Format-Table, you can display data in not one column but two or three columns.  This is the format-wide or (fw) option, which is useful where you have a long list with only one field, for example:

Get-Process | Get-Member -Membertype method |format-wide name -column 3.

Format-List

The other way PowerShell can format output is with a list.  This is useful when you want to display multiple properties for one object.  Here is an example:

#Example of PowerShell Format-List
Get-Process services |format-List -property *

Note 5:  What makes using the format-list worthwhile is the * (star) wildcard.PowerShell Format-list

Guy Recommends: WMI Monitor and Its Free!Solarwinds WMI Monitor

Windows Management Instrumentation (WMI) is one of the hidden treasures of Microsoft operating systems.  Fortunately, Solarwinds have created the WMI Monitor so that you can examine these gems of performance information for free.  Take the guess work out of which WMI counters to use for applications like Microsoft Active Directory, SQL or Exchange Server.

Download your free copy of WMI Monitor

Script (cmdlet) Technique

As regards our working technique for Format-Table, we have reached a crossroads.  My preferred working method is to create scripts and then run them from the PowerShell command line.  The other alternative is to keep typing and re-typing the commands in the shell.  My technique comes into its own when the commands are complex; as a bonus my scripts document what I do so it's easy to refer and refine previous experiments.

If you too like this script (cmdlet) method, then first make sure PowerShell will allow script to run, you only have to do this once, type :
set-executionpolicy RemoteSigned

Assuming that I have saved example 2 in a file called proc.ps1, what I do is go to the PS prompt and type .\proc.  You either have to save the script into the working directory, or else use cd to change to the directory where the script was saved.

Summary of Format-Table in Windows PowerShell

Presentation really does transform the output of your PowerShell scripts.  Also, when you get too much information the answer is to filter and reduce the number of columns in the display.  On other occasions, you need to display extra properties, which are not shown by the default command.  In each case, Format-Table gives you control over the presentation of your output.

While Format-Table (or ft for short), is a ubiquitous command, it does have numerous switches. With judicious application of its many switches, you can produce creative and effective outputs.

See more Microsoft PowerShell output tutorials:

PShell Home  • Out-File  • Out-GridView  • ConvertTo-Html  • -f format  • Files  • Pipe to file

Export-CSV  • Import-CSV  • Format-Table  • Format-List  • Read-Host  • Write-Host

Please write in if you have a better example script. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.

Download my ebook:Getting Started with PowerShell
Getting Started with PowerShell - only $9.25

You get 36 topics organized into these 3 sections:
   1) Getting Started
   2) Real-life tasks
   3) Examples of Syntax.

In addition to the ebook, you get a PDF version of this  Introduction to PowerShell ebook  It runs to 120 pages of A4.

 *


Google

WebThis Site

Guy Recommends: WMI Monitor and Its Free!Solarwinds WMI Monitor

Windows Management Instrumentation (WMI) is one of the hidden treasures of Microsoft operating systems.

 Fortunately, Solarwinds have created the WMI Monitor so that you can examine these gems of performance information for free.  Take the guess work out of which WMI counters to use for applications like Microsoft Active Directory, SQL or Exchange Server.

Download your free copy of WMI Monitor

 

Home Copyright © 1999-2010 Computer Performance LTD All rights reserved

Please report a broken link, or an error.