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:
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
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:
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?"
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?"
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
Tip
Tip
Tip
Warning
Warning
Self-Learning Workflow
When you encounter something new:
-
Find the command
-
Look at examples
-
Explore the object
-
Try it yourself
-
Copy an example
- Modify it
- Run it
-
Learn from errors
-
Read detailed help if needed
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
Related Topics
- Cmdlets Introduction - Understanding cmdlets
- PowerShell Basics - Getting started with PowerShell
- The Pipeline - Understanding how cmdlets connect
- Functions - Creating your own documented functions
Additional Resources
- Microsoft PowerShell Documentation
- PowerShell Gallery - Community modules
- about_* Topics List