Command és cmdlet

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 foglakozunk 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.



Word To HTML Converter