Your First 30 Minutes in PowerShell

learn-hero-img
So you’ve finally gotten the memo and decided it was time to start learning PowerShell. Excellent. But before you go off searching YouTube for free training videos or simply start floundering around at a PowerShell prompt, which will frustrate you to no end, take a moment to lay out the groundwork.

Although PowerShell isn’t something that you can master in 24 hours, you can learn enough in a short period of time to accomplish some simple and basic tasks. This article is aimed at the absolute PowerShell beginner running at least PowerShell 3.0 on a Windows 7 desktop. For beginners, the fundamentals of PowerShell don’t change between versions 3, 4, or 5.

Launching an Elevated Session

To start, I recommend launching PowerShell in an elevated session. Even if your account has admin rights, some of the things you will need to do will require an elevated session. Find the PowerShell console icon on your Start Menu, right-click and choose the ‘Run as Administrator’ option. PowerShell should now open in the traditional blue screen.

An elevated PowerShell session (Image Credit: Jeff Hicks)
An elevated PowerShell session (Image Credit: Jeff Hicks)

You might even see the window titled with Administrator. You can use the same commands you know from the legacy CMD.EXE window to navigate around. You can use commands like dir and cd. The output might look slightly different, but it should still recognizable.
Using traditional commands in Windows PowerShell. (Image Credit: Jeff Hicks)
Using traditional commands in Windows PowerShell. (Image Credit: Jeff Hicks)

Note: Be aware that when you type dir you aren’t really typing the DIR command, so if you see errors hold on a few minutes.

Find Your Version

The next thing you might want to do is to identify what version of PowerShell you are running. At a prompt, type $psversiontable, and press Enter. What you just typed is a built-in variable that shows you version information about the different components of the Windows Management Framework. PowerShell is actually just one piece.

The PowerShell version table
The PowerShell version table (Image Credit: Jeff Hicks)

In this screenshot, taken from a different computer, you can see the PSVersion value is 5.0.10586.51, or v5. That’s generally the most important piece of information to know. Eventually you will start running scripts and PowerShell tools that might require a minimal version. If you get an error saying the script won’t run, you can always check your version information.

Update Help

The first major step you need to take in the first 30 minutes is to update PowerShell’s help files. This requires Internet access. Out of the box, PowerShell ships with minimal help documentation. All you need to do is type the command Update-Help and press Enter. The command will search your computer for all PowerShell commands and check them for online links for downloadable help.

Updating PowerShell help
Updating PowerShell help (Image Credit: Jeff Hicks)

You only need to do this once a week or so, if that. By default Update-Help will only connect online every 24 hours, so if you need to rerun the command, use the –Force parameter.

Update-Help –force

Read About Topics

The next step is to begin familiarizing yourself with all of the great help documentation you just downloaded. Start out by running this command:

help about_windows_Powershell*

I used a wildcard because you might see different topics depending on your version. You will probably get a list of matching items.

Listing about topics
Listing about topics (Image Credit: Jeff Hicks)

All of these about topics are concept-oriented documentation. Once you see the full name, ask PowerShell help to display it.

help about_windows_powershell_4.0

About Windows PowerShell
About Windows PowerShell (Image Credit: Jeff Hicks)

If you see “More” at the bottom of the screen, press Enter to advance to the next line, press the space bar to advance to the next “page”, or press Q to quit.
I encourage you to take the time to really read the document, don’t merely skim it. If some of it goes over your head, don’t worry too much about that now. Take the next several minutes and run these commands, reading each help topic.

  • Help about_objects
  • Help about_pipelines
  • Help about_command_syntax
  • Help about_parameters

PowerShell also has help for all the commands you will be using. Remember when I said typing dir isn’t the same as the DIR command you may be used to? Ask PowerShell for help:

Help dir

You should see something like this.

Help for the dir command
Help for the dir command (Image Credit: Jeff HIcks)

Technically, the dir command is an alias for a command called Get-ChildItem. As alias is merely an alternate name, which may be easier to type or serve as a transition aid as is the case here. Thus if you wanted to list all subfolders, you would use the –Recurse parameter.

dir c:\windows\softwaredistribution –recurse

By default PowerShell displays a short version of help. You can read full command documentation with the –Full parameter.

Help dir –full

Many commands also have a link to an online version of help, which is sometimes more up-to-date than what you can download. To see the latest version of help, use the –Online parameter.

Help dir -online

Get in the habit of reading help all the time, even for commands you think you know. New versions of PowerShell might add a new parameter or feature, and unless you read the help, you’ll miss out.

Run Basic Commands in PowerShell

Hopefully you still have a few minutes left to dip your toe in the PowerShell waters. Try running a few basic commands:

  • get-service
  • get-service | where status –eq ‘running’
  • get-process
  • get-process | sort workingset -descending |select-object -first 5

Again, don’t feel you have to completely understand what these commands are doing or how they work. I want you to see how easy it is to use PowerShell. If you want to learn more about the commands read their help documentation.

PowerShell: Use It or Lose It

Learning PowerShell is no different than learning a foreign language. It will be rough at first and might feel like an epic struggle, but stick with it. Master the basics like you would any language before diving into more complex scenarios and topics.
I strongly encourage you to find ways to use PowerShell every day. Even if you do nothing other than read a new help topic. The more you use it, the more you’ll understand it, which means it will get easier, and you’ll want to use it more.
At this point, you can start searching for other educational sources, although I certainly hope you’ll stay connected with the content I write for Petri. I also maintain a page on my own blog with my suggestions for PowerShell resources.
Welcome to an exciting new world. Let’s get started.