Essential Windows PowerShell Commands

Executive Summary:
Windows PowerShell is an extensible, objected-oriented scripting language with full support for variables, looping, and pipelining. Use the Get-Help cmdlet to learn more about other commands. Use Get-Alias to find aliases for commands. PowerShell also has commands for reading from or writing to a file, starting a debugger, and checking event logs.

PowerShell is an extensible, objected-oriented
scripting language with full support for variables,
looping, and pipelining. Microsoft has made Power-
Shell the scripting framework for almost all of its new
products. For instance, PowerShell is integrated into the
management consoles for both Microsoft Exchange Server
2007 and the upcoming System Center Virtual Machine
Manager 2007. However, while PowerShell represents a
revolutionary step in Windows scripting, it’s also a very
different technology from its predecessors, the Windows
command shell and VBScript. PowerShell has a new set
of commands (called cmdlets) and command syntax that
you need to learn. To help you get up to speed, here are 10
essential PowerShell cmdlets.

10 Get-Help—The Get-Help cmdlet helps you
learn how to use PowerShell. Get-Help not
only explains the syntax of commands, but
it also provides examples of how to use
them. The following example shows how to use Get-Help
to learn about the PowerShell Help system itself:

get-help

9cd—You can use the good ole’ cd (Change Directory)
command to navigate between folders.
Under the covers, cd is an alias for the Set-
Location cmdlet. What sets this command
apart from the old Windows shell cd command is its
ability to navigate the registry. To use cd to go into the
HKEY_LOCAL_MACHINE\SOFTWARE subkey, you would
enter

cd hklm:\software

8 Get-Alias—PowerShell has more than a hundred
different aliases. Plus, you can create custom
aliases with the New-Alias cmdlet. Use the Get-Alias cmdlet (or its alias, gal) to list all the Power-Shell aliases along with their native counterparts:

gal | select name, definition

7 Get-Command—You use the Get-Command
cmdlet to retrieve a list of the hundreds of
available commands. PowerShell’s support for
wildcards helps you narrow your searches. The
following example retrieves all the commands that begin
with get:

get-command get*

6 Set-Content—Set-Content (or its alias, sc) is used
to write values to a file. If the specified target
file doesn’t exist, this command creates it. For
example, the following command writes the value
“My data” to the file named mynewfile.txt:

sc c:\temp\mynewfile.txt -value “My data”

5 Get-Content—The counterpart to sc is Get-Content
(gc). The gc cmdlet is used to read the contents of a
file. For example, the following command displays
the contents of the file named mynewfile.txt:

gc c:\temp\mynewfile.txt

4 Set-ExecutionPolicy—By default, PowerShell’s
ability to run scripts is disabled; you can only
enter commands at the command line. The
Set-ExecutionPolicy cmdlet lets you change the
security level for running scripts. To enable PowerShell to
run any script, you can enter the following command:

set-executionpolicy unrestricted

3 Set-PsDebug—Although PowerShell doesn’t have a
full-featured debugger, it does have basic debugging
capabilities through the Set-PsDebug cmdlet. Entering
the following command will cause a PowerShell
script to step through its execution one line at a time:

set-psdebug -step

2 Get-Process—PowerShell has great built-in commands
that let you perform many tasks that formerly
required resource kits or third-party tools.
For example, the Get-Process cmdlet retrieves
information about the active processes on a system. Use the
following example to list all running processes:

get-process

1 Get-Eventlog—The Get-Eventlog
cmdlet retrieves Windows event logs.
As with Get-Process, there’s no need
for additional utilities. The following
example shows how you can retrieve
the 10 most recent entries from the
system event log: