A PowerShellben a parancsokat cmdlet -nek (kommandlet ) hívjuk. Hogy miért? Valószínű megkülönböztetésül a DOS-os parancsoktól, amelyek sok esetben valójában külső programok meghívását jelentik (pl.: netsh à netsh.exe, attrib à attrib.exe). Lényeg, hogy a cmdletek a PowerShell „sajátjai”, egységes szerkezetet alkotnak „ige-főnév” formában. Ezeket a get-command cmdlettel ki is listázhatjuk:
[1] PS C:\> Get-Command
CommandType Name Definition
----------- ---- ----------
Alias % ForEach-Object
Alias ? Where-Object
Function A: Set-Location A:
Alias ac Add-Content
Cmdlet Add-Computer Add-Computer [-DomainName] ...
Cmdlet Add-Content Add-Content [-Path] <String...
Cmdlet Add-History Add-History [[-InputObject]...
Cmdlet Add-Member Add-Member [-MemberType] <P...
Cmdlet Add-PSSnapin Add-PSSnapin [-Name] <Strin...
Cmdlet Add-Type Add-Type [-TypeDefinition] ...
Alias asnp Add-PSSnapIn
Function B: Set-Location B:
Function C: Set-Location C:
Alias cat Get-Content
Alias cd Set-Location
Function cd.. Set-Location ..
Function cd\ Set-Location \
Alias chdir Set-Location
Cmdlet Checkpoint-Computer Checkpoint-Computer [-Descr...
Alias clc Clear-Content
…
A PowerShellben a Get-Command nem csak az „igazi” cmdleteket adja vissza, hanem az „álneveket”, függvényeket is, így ha csak a cmdletekre vagyunk kíváncsiak, akkor a következő formában kell írni a parancsunkat:
[2] PS C:\> Get-Command -CommandType cmdlet
CommandType Name Definition
----------- ---- ----------
Cmdlet Add-Computer Add-Computer [-DomainName] ...
Cmdlet Add-Content Add-Content [-Path] <String...
Cmdlet Add-History Add-History [[-InputObject]...
Cmdlet Add-Member Add-Member [-MemberType] <P...
Cmdlet Add-PSSnapin Add-PSSnapin [-Name] <Strin...
Cmdlet Add-Type Add-Type [-TypeDefinition] ...
Cmdlet Checkpoint-Computer Checkpoint-Computer [-Descr...
Cmdlet Clear-Content Clear-Content [-Path] <Stri...
Cmdlet Clear-EventLog Clear-EventLog [-LogName] <...
Cmdlet Clear-History Clear-History [[-Id] <Int32...
Cmdlet Clear-Item Clear-Item [-Path] <String[...
Cmdlet Clear-ItemProperty Clear-ItemProperty [-Path] ...
Cmdlet Clear-Variable Clear-Variable [-Name] <Str...
Cmdlet Compare-Object Compare-Object [-ReferenceO...
…
Említettem, hogy a cmdletek a PowerShell sajátjai, a PowerShell szabványoknak teljes mértékben megfelelnek, tehát nem külső programok. Ez természetesen nem azt jelenti, hogy külső programokat nem lehet meghívni. És azt sem jelenti, hogy csak a PowerShell telepítésével létrejövő cmdleteket használhatjuk, a Windows különböző verzióival és egyéb Microsoft szoftverekkel más és más kiegészítő modulokat telepíthetünk, vagy különböző forrásokból származó (pl.: PowerShell Community Extensions: http://www.codeplex.com/PowerShellCX vagy a „Remote Server Administration Tool telepítésével elérhetővé váló ActiveDirectory modul) cmdleteket is beépíthetünk a PowerShellbe, de innentől kezdve ezek a cmdletek is a PowerShell sajátjaivá válnak.
Természetesen arra is lehetőség van, hogy magunk hozzunk létre cmdleteket, de ennek csak azon vonatkozásaival fogunk foglalkozni, amit a PowerShell keretein belül meg tudunk oldani. A dll-ek készítése és Visual Studio segítségével létrehozandó bővítmények olyan mélyen bevinnének minket az igazi programozók veszélyekkel teli földjére, hogy ebben könyvben nem foglalkozunk a témával. Akit mégis érdekel a dolog, és elegendő bátorságot is érez magában, az például elolvashatja a Professional Windows PowerShell Programming - Snap-ins, Cmdlets, Hosts, and Providers című könyvet, ami a Wiley Publishing, Inc. gondozásában jelent meg 2008-ban angol nyelven.
Ezen kívül a PowerShellben vannak kifejezések és egyéb nyelvi elemek, amelyekkel a következőkben foglalkozom.