Skip to content

Welcome to the PowerShell Encyclopedia

  • Getting Started


    New to PowerShell? Start here — installation, first commands, and the pipeline explained.

    Get started

  • Core Concepts


    Master variables, data types, control flow, functions, error handling, and modules.

    Explore concepts

  • Guides


    Task-focused walkthroughs for filesystem, networking, processes, the registry, and more.

    Browse guides

  • Write Your Own Commands


    Learn to create functions, script modules, and publish to the PowerShell Gallery.

    Start authoring

  • Command Reference


    A-Z reference of 60+ cmdlets with syntax, parameters, and examples.

    Open reference

  • Command Lookup by Function


    Don't know the command name? Browse by category — filesystem, networking, processes, and more.

    Browse by function

  • Examples & Recipes


    Ready-to-run scripts for real-world tasks, from log analysis to system auditing.

    See examples

  • Contributing


    Fix a typo, improve an example, or write a new guide. All contributions are welcome.

    How to contribute

  • Suggest a Change


    Found an error, missing cmdlet, or have an idea for a new topic? Open an issue — no coding required.

    Open an issue


Why PowerShell?

PowerShell is a cross-platform automation and configuration management framework built on .NET. It runs on Windows, macOS, and Linux, and it is the standard tool for:

  • System administration — manage services, processes, users, the registry, and scheduled tasks
  • DevOps & CI/CD — automate builds, deployments, and infrastructure provisioning
  • Security — audit event logs, enforce policies, and manage certificates
  • Data processing — parse CSV, JSON, and XML files; query REST APIs; generate reports

Unlike traditional shells that pass plain text between commands, PowerShell passes rich .NET objects. Every cmdlet in the pipeline receives structured data, which you can filter, sort, format, and transform without ever parsing a string.


Quick-Start Examples

Your first five commands
# Show all running processes sorted by CPU usage
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10

# Find all .log files modified in the last 24 hours
Get-ChildItem C:\ -Recurse -Filter *.log |
    Where-Object { $_.LastWriteTime -gt (Get-Date).AddHours(-24) }

# Check if a TCP port is open
(Test-NetConnection github.com -Port 443).TcpTestSucceeded

# Call a REST API and parse the JSON response
$user = Invoke-RestMethod https://api.github.com/users/octocat
$user.name

# Export a list of running services to CSV
Get-Service | Where-Object Status -eq Running |
    Export-Csv -Path .\services.csv -NoTypeInformation

How This Encyclopedia is Organized

Section What's Inside
Getting Started Installation, shell basics, the object pipeline
Core Concepts Variables, types, operators, loops, functions, error handling, modules, providers
Guides Hands-on walkthroughs by topic (filesystem, networking, processes, etc.)
Writing Your Own Commands Functions, advanced functions, modules, help, PSGallery publishing
Command Reference Full A-Z cmdlet listing with syntax and examples
Command Lookup by Function Find any cmdlet by what it does — browse by category (filesystem, networking, processes, and more)
Examples & Recipes Complete, copy-pasteable scripts for real tasks
Contributing How to fix, improve, or add content to this encyclopedia
Suggest a Change Open a GitHub issue to report errors or request new content

Use the search bar

Press S or / to jump to the search bar and quickly find any cmdlet, concept, or keyword.