PowerShell


Three Ways to Execute a PowerShell Command

Three Ways to Execute a PowerShell Command

Here are basic instructions to help you execute a PowerShell command.  You have a choice of three strategies; firstly, the time-honoured method of copying other people's examples, and then pasting their code into your PowerShell session.  Secondly, creating cmdlets (my favorite), and thirdly, simply typing the instructions at the PowerShell command line.

Topics - How to Execute a PowerShell Command

Method 1 Copying and Pasting (Easiest)

This is how to copy and paste PowerShell instructions at the command line.

  • Launch Windows PowerShell
  • Copy all the lines of code into memory
  • Right-click on the PowerShell symbolPowerShell Scripts How to Copy and Paste
  • Edit --> Paste
  • Check the menus on my screenshot to the right
  • Press 'Enter' to execute your pasted code

'Vehicle' for Executing a PowerShell Command

Since the aim is to learn a technique, the practice code does not matter.  Most people use 'Hello World', as their test 'vehicle'; however, I prefer to choose a real example.  For instance, here is a cmdlet which gets the operating system processes, and then groups them by company name.  Incidentally, the code is a work-in-progress where I am trying to output the data to a file called ProcessCompany.txt.

Example 1: To list Processes running on your machine

# PowerShell cmdlet to group Processes by company
$Path = "C:\PowerShell\ProcessCompany.txt"
$ProSvc = get-Process |sort company |ft -groupby company
$ProSvc
# $ProSvc | out-file $Path

Result: You should see a list of processes grouped by Company name.

Method 2 Cmdlet (Best)

Because it saves your instructions permanently into a text file, this cmdlet method is an improvement over copy and paste.  Creating cmdlets is my favorite technique because it is ideal for making amendments, then re-running the commands.  As a bonus, cmdlets keep a record of what I have done.

  • Copy the code in the 'Vehicle' above into a text file
  • Save the file with a .ps1 extension, for example: addcontenta.ps1
  • In PowerShell, navigate to the folder where you saved addcontenta.ps1
    (D:\PowerShell\Files in the screen shot below)
  • Issue this command:
    .\addcontenta
    (dot backslash filename)

 

How to run a PowerShell cmdlet

Tip:  For each of my PowerShell projects, I launch Windows Explorer and then create a subfolder.  Once I have a cmdlet that works, I store it in that subfolder.  Thereafter my technique is to call for: File (menu), SaveAs, create a new file.  Then I work with the new file and try to improve on that original version.  At various points I call for SaveAs again, thus creating a family of cmdlets, for example: addcontenta, addcontentz, addcontenty etc.

My reason for employing this cmdlet technique is to twofold, to cater for that moment when my code gets into a tangle, and I think: 'If only I could go back in time to when my script WAS working'.  Well, thanks to saving lots of intermediary examples, I can revert to a working backup.  Secondly, producing cmdlets means that I can return to my research months later and pick up from where I left off, instead of starting the project from scratch.

You may like to combine methods 1 and 2 by copying other people's code then pasting, not to the command line, but into a cmdlet text file.  See more on creating cmdlets.

Method 3 Type at the command line (Simplest method)

Because PowerShell commands are so efficient, and thus short, I have no qualms about recommending that you simply type them at the command line.  To test method 3, I have different examples or 'Vehicles'.  You could start by typing this at the command line: get-Childitem c:\windows.

Indeed, if you are new to PowerShell there is nothing like typing to give you a 'feel' for the syntax.  As you type simple commands, so you get into the rhythm of the verb-noun pair.  Another bonus of typing is that you understand when to use a dash (-) and when to precede a dash with a space.  Here are three examples of what I mean:
get-Eventlog -list  (Correct: Space before -list)
get-help eventlog (Correct: No space before eventlog)
get-Eventlog system | get-Member  (Correct: No space between each verb-noun)

get  -eventlog -list  (Wrong: Space between get and -)
get-help -eventlog (Wrong: 'Overthink' eventlog is not a parameter or a switch, it is a positional argument and thus does not need a dash.

There are occasions when even experienced PowerShell scriptwriters resort to typing commands.  As for me, I love creating cmdlets, but I do type commands especially when I want a list of an object's properties, for example,
abc-xyz |gm.  (gm is an alias for get-Member).

  ˚

Summary of How to Execute a PowerShell Command

Typical Microsoft, there are always at least two ways of executing PowerShell code.  By all means start with the time-honoured method of copying and pasting, but for the long term, my advice is take the time to master the cmdlet method.

See Also

Windows PowerShell Home  • Introduction  • Cmdlets  • Exchange 2007  • Profile.ps1  • $_.Pipeline

If you see an error of any kind, do let me know.  Please report any factual mistakes, grammatical errors or broken links, I will be happy to not only to correct the fault, but also to give you credit.

 *


Google

Webcomputerperformance.co.uk

Guy Recommends: SolarWinds Exchange Monitor

Exchange Monitor from SolarWindsHere is a free tool to monitor your Exchange Server

 

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

Please report a broken link, or an error.