Skip to content

Help System

Note

Learn how to use PowerShell's built-in help system to teach yourself, find commands, and understand how cmdlets work.

Overview

PowerShell has comprehensive built-in documentation. Learning to use the help system effectively makes you self-sufficient - you won't need to Google everything or ask others for help.

Tip

Learning how to find help is more important than memorizing commands. Master Get-Help and you can figure out anything.

Get-Help Basics

View Help for a Cmdlet

# Basic help
Get-Help Get-Process

# Detailed help
Get-Help Get-Process -Detailed

# Full help (everything)
Get-Help Get-Process -Full

# Just examples
Get-Help Get-Process -Examples

# Online help (opens browser)
Get-Help Get-Process -Online

Help Sections

When you run Get-Help, you see:

NAME
    Get-Process

SYNOPSIS
    Gets the processes running on local/remote computer

SYNTAX
    Get-Process [[-Name] <String[]>] [common parameters]

DESCRIPTION
    Detailed explanation of what the cmdlet does...

PARAMETERS
    -Name <String[]>
        Specifies process names...

EXAMPLES
    Example 1: Get all processes
    Get-Process

    Example 2: Get specific process
    Get-Process -Name chrome

Updating Help

Help files need to be downloaded first (one-time setup):

# Update help for all modules (requires admin)
Update-Help

# Update help for specific module
Update-Help -Module Microsoft.PowerShell.Management

# Update help ignoring errors
Update-Help -ErrorAction SilentlyContinue

# Force update even if current
Update-Help -Force

Warning

The first time you use Get-Help, you may see basic help only. Run Update-Help (as admin) to download full help files.

Finding Commands

Get-Command

Find cmdlets when you don't know the exact name:

# Get ALL commands
Get-Command

# Find commands by name pattern
Get-Command *Process*              # Contains "Process"
Get-Command Get-*                  # Starts with "Get-"
Get-Command *-Service              # Ends with "-Service"

# Find by verb
Get-Command -Verb Get              # All Get- cmdlets
Get-Command -Verb New              # All New- cmdlets

# Find by noun
Get-Command -Noun Process          # All *-Process cmdlets
Get-Command -Noun Service          # All *-Service cmdlets

# Find by module
Get-Command -Module ActiveDirectory

Search for Keywords

# Search help content for keywords
Get-Help *firewall*
Get-Help *network*
Get-Help *registry*

# Find cmdlets related to a topic
Get-Command *event*
Get-Command *log*

Reading Help Examples

Examples are the fastest way to learn:

# Get just the examples
Get-Help Get-Process -Examples

Example output:

Example 1: Get all processes
PS> Get-Process

Example 2: Get processes by name
PS> Get-Process -Name chrome, firefox

Example 3: Get processes using more than 100MB memory
PS> Get-Process | Where-Object {$_.WS -gt 100MB}

Tip

When learning a new cmdlet: 1. First: Get-Help CmdletName -Examples 2. Try the examples 3. Modify them for your needs 4. Read detailed help if you need more info

Understanding Parameter Help

Parameter Details

# Get help for specific parameter
Get-Help Get-Process -Parameter Name

Output shows:

-Name <String[]>
    Specifies one or more processes by process name.
    You can type multiple process names (separated by commas)
    or use wildcard characters.

    Required?                    false
    Position?                    0
    Default value                All processes
    Accept pipeline input?       True
    Accept wildcard characters?  true

Understanding the info:

  • Type: <String[]> means array of strings
  • Required: Whether parameter is mandatory
  • Position: Can use without parameter name if in this position
  • Pipeline input: Can pipe values to this parameter
  • Wildcards: Can use * and ?

Parameter Types

# Common parameter types you'll see:
<String>         # Text
<Int32>          # Number (integer)
<Boolean>        # True/False
<String[]>       # Array of strings
<SwitchParameter> # Just include or don't (-Recurse, -Force)

Using Help Interactively

Show-Command

Interactive GUI for building commands:

# Opens GUI for a cmdlet
Show-Command Get-Process

# Opens cmdlet browser
Show-Command

Lets you:

  • Fill in parameters visually
  • See all available options
  • Copy the resulting command
  • Run it directly

Get-Member

Discover what properties and methods an object has:

# Get properties and methods
Get-Process | Get-Member

# Just properties
Get-Process | Get-Member -MemberType Property

# Just methods
Get-Process | Get-Member -MemberType Method

Example output:

TypeName: System.Diagnostics.Process

Name                MemberType  Definition
----                ----------  ----------
Handles             Property    int Handles {get;}
CPU                 Property    double CPU {get;}
Name                Property    string Name {get;}
Kill                Method      void Kill()

Common Help Patterns

Pattern 1: "How do I do X?"

# 1. Search for related commands
Get-Command *keyword*

# 2. Look at help for promising cmdlet
Get-Help CmdletName -Examples

# 3. Try the examples
# 4. Modify for your needs

Pattern 2: "What does this do?"

# If you see an unfamiliar cmdlet in code:
Get-Help UnfamiliarCmdlet -Examples

Pattern 3: "What parameters are available?"

# See all parameters
Get-Help CmdletName -Parameter *

# Or use tab completion
CmdletName -[Tab]
CmdletName -[Ctrl+Space]  # Shows all parameters

Pattern 4: "What can I do with this object?"

# Pipe to Get-Member to see properties/methods
$result = Get-Process
$result | Get-Member

About Topics

PowerShell has detailed help topics about concepts:

# List all about topics
Get-Help about_*

# Specific topics
Get-Help about_Variables
Get-Help about_Arrays
Get-Help about_Hash_Tables
Get-Help about_If
Get-Help about_Functions
Get-Help about_Operators
Get-Help about_Pipelines

# Search for topic
Get-Help about_* | Where-Object {$_.Name -like "*array*"}

Essential about topics for beginners:

Get-Help about_Variables
Get-Help about_Arrays
Get-Help about_Operators
Get-Help about_Comparison_Operators
Get-Help about_If
Get-Help about_For
Get-Help about_Foreach
Get-Help about_Functions
Get-Help about_Pipelines
Get-Help about_Operators

Practical Examples

Example 1: Learning a New Cmdlet

# Scenario: You need to work with services but don't know the cmdlet

# Step 1: Find service-related cmdlets
Get-Command *Service*
# Result: Get-Service, Start-Service, Stop-Service, etc.

# Step 2: Look at examples
Get-Help Get-Service -Examples
# Shows you how to use it

# Step 3: Try it
Get-Service

# Step 4: Learn more about a parameter
Get-Help Get-Service -Parameter Name

Example 2: Understanding Pipeline

# You see this code and don't understand it:
Get-Process | Where-Object {$_.CPU -gt 100}

# Step 1: Understand Get-Process
Get-Help Get-Process -Examples

# Step 2: Understand Where-Object
Get-Help Where-Object -Examples

# Step 3: See what properties Process has
Get-Process | Get-Member -MemberType Property
# Now you see: CPU is a property

# Step 4: Understand comparison operators
Get-Help about_Comparison_Operators

Example 3: Finding the Right Cmdlet

# Scenario: You need to work with JSON

# Search for JSON-related cmdlets
Get-Command *Json*
# Results: ConvertTo-Json, ConvertFrom-Json

# Look at examples
Get-Help ConvertTo-Json -Examples

# Try it
$data = @{Name="John"; Age=30}
$data | ConvertTo-Json

Help Aliases

Quick shortcuts for common help operations:

help      # Alias for Get-Help (paged output)
man       # Alias for Get-Help (paged output)

# These show help one page at a time (like 'more')
help Get-Process
man Get-Process

# Regular Get-Help shows everything at once
Get-Help Get-Process

Tips & Tricks

Tip

# Don't start with full help (overwhelming)
Get-Help Get-Process -Full  # Too much info>
# Start with examples (learn by doing)
Get-Help Get-Process -Examples  # Perfect starting point

Tip

# Local help might be outdated
Get-Help Get-Process>
# Online help is always current
Get-Help Get-Process -Online  # Opens browser to latest docs

Tip

# Don't know exact cmdlet name? Use wildcards
Get-Command *event*
Get-Help *event*>
# Find all Get- cmdlets
Get-Command Get-*

Tip

# Always use Get-Member to explore objects
Get-Process | Get-Member
Get-Service | Get-Member
Get-ChildItem | Get-Member>
# Now you know what properties/methods are available

Warning

# Help files can be outdated
# Update every few months
Update-Help -ErrorAction SilentlyContinue

Warning

# If -Examples shows nothing:
Get-Help SomeObscureCmdlet -Examples
# No examples available>
# Fall back to:
Get-Help SomeObscureCmdlet -Detailed
# Or search online
Get-Help SomeObscureCmdlet -Online

Self-Learning Workflow

When you encounter something new:

  1. Find the command

    Get-Command *keyword*
    

  2. Look at examples

    Get-Help CmdletName -Examples
    

  3. Explore the object

    CmdletName | Get-Member
    

  4. Try it yourself

  5. Copy an example

  6. Modify it
  7. Run it
  8. Learn from errors

  9. Read detailed help if needed

    Get-Help CmdletName -Detailed
    Get-Help CmdletName -Online
    

Common Beginner Questions

"How do I find a cmdlet for X?"

# Search by keyword
Get-Command *keyword*

# Search help
Get-Help *keyword*

# Example: How to work with files?
Get-Command *file*
Get-Command *item*  # PowerShell calls files "items"

"What parameters can I use?"

# Three ways:
# 1. Tab completion
Get-Process -[Tab]

# 2. Ctrl+Space (shows all)
Get-Process -[Ctrl+Space]

# 3. Get-Help
Get-Help Get-Process -Parameter *

"What properties does this object have?"

# Always use Get-Member
Get-Process | Get-Member -MemberType Property

# Or look at one object
$proc = Get-Process | Select-Object -First 1
$proc | Get-Member

"How do I learn PowerShell?"

# Start with about topics
Get-Help about_Variables
Get-Help about_Arrays
Get-Help about_If
Get-Help about_Foreach
Get-Help about_Functions
Get-Help about_Pipelines

# Practice with real cmdlets
Get-Help Get-Process -Examples
Get-Help Get-Service -Examples
Get-Help Get-ChildItem -Examples

Additional Resources