Code Reference

Glossary

Powershell · Reference cheat sheet

Glossary

Powershell · Reference cheat sheet


📋 Overview

Alphabetical glossary of core PowerShell terms for cmdlets, objects, pipelines, remoting, and scripting.

🔧 Core concepts

TermDefinition
AliasAn alternate short name for a cmdlet or function, such as gci for Get-ChildItem.
ArrayAn ordered collection of objects, often created with @() or comma lists.
CmdletA compiled .NET command following Verb-Noun naming, like Get-Process.
Common parameterShared parameters such as -ErrorAction and -Verbose available on many commands.
Execution policyA setting that restricts which scripts may run on a machine.
FilterA scriptblock used in the pipeline to include/exclude objects.
FunctionA reusable named scriptblock defined with function Name \{ \}.
Hash tableA key/value map written as @\{ Key = Value \}.
JobA background task started with Start-Job or -AsJob.
MemberA property or method on a PowerShell object.
ModuleA package of commands loaded with Import-Module.
ObjectThe structured .NET data item flowing through the PowerShell pipeline.
ParameterA named input to a command, often bound by name or position.
Parameter bindingThe process that maps pipeline input and arguments to parameters.
PipelineThe `
ProfileA script that runs when a PowerShell host starts.
ProviderA drive-like data store interface such as FileSystem or Registry.
PSCredentialAn object holding a username and secure password for auth.
RemotingRunning commands on remote machines via WinRM/Invoke-Command.
ScopeThe visibility boundary for variables and functions (Global, Script, Local).
ScriptblockAn anonymous block of code written as \{ ... \}.
SplattingPassing a hashtable of parameters with @params.
SwitchA boolean parameter present when named, or a switch statement for branching.
VariableA named storage slot referenced as $name.
Verb-NounThe conventional cmdlet naming pattern (Get-, Set-, New-, …).
WhatIfA common risk-mitigation switch that previews changes without applying them.

💡 Examples

Cmdlets and pipeline:

Get-ChildItem -Path . -Filter *.md |
  Where-Object { $_.Length -gt 1KB } |
  Select-Object Name, Length

Splatting and functions:

function Get-Greeting {
  param([string]$Name)
  "Hello, $Name"
}
$params = @{ Name = "Ada" }
Get-Greeting @params

Remoting:

Invoke-Command -ComputerName web01 -ScriptBlock {
  Get-Service nginx
}

⚠️ Pitfalls

  • Confusing text pipelines (Bash) with object pipelines (PowerShell).
  • Mixing aliases in scripts with full cmdlet names — aliases hurt readability.
  • Treating execution policy as security boundary — it is a safety rail, not a sandbox.
  • Equating $null, empty string, and empty array in conditionals — truthiness differs.
  • Assuming Where-Object filters like SQL — it runs script logic per object.

On this page