10Aug

Geek School: učenie sa používať Cmdlets v PowerShell

Ak ste použili ipconfig alebo ping cez príkazový riadok, ste na polceste, kým sa nestanete ninja PowerShell. Takže pojďte a pripojte sa k nám, keď objavíme cmdlety v tejto inštalácii Geek School.

Nezabudnite sa pozrieť na náš prvý článok predstavujúci PowerShell a počas celého týždňa zostaňte naladení na zvyšok našej série.

Anatómia zväzku

V prvej časti série sme videli cmdlet, ktorý vyzeral takto:

Update-Help

PowerShell cmdlety majú sloveso-Noun syntax, ktorý je vidieť vyššie. Dôležité je poznamenať, že podstatné meno je vždy jedinečné, hoci cmdlet môže vrátiť viac ako jeden výsledok. Ak chcete zobraziť zoznam právnych sloves v PowerShell, môžete použiť rutinu Get-Verb.

Znalosť zákonných sloves a spomínanie na singulárne pravidlo podstatného mena skutočne pomáha hádať názvy cmdletov. Predpokladajme napríklad, že chcete získať zoznam služieb a ich stav - to je pravda, je to tak jednoduché ako Get-Service. Ako si myslíte, že by sme dostali zoznam bežiacich procesov - to je pravda, Get-Process urobí trik.

Get-Process

To umožňuje veľmi ľahké pracovať s akoukoľvek technológiou. Ak ste napríklad nainštalovali cmdlety Exchange, mohli by sme ľahko získať zoznam poštových schránok na serveri pomocou:

Get-Mailbox

Avšak existuje výnimka. Výmena, všetky ostatné príkazy špecifické pre technológiu budú vyžadovať predponu. Ak napríklad chceme získať používateľov, ktorí sú momentálne prihlásení prostredníctvom služby Vzdialená plocha, zadáme:

Get-RDUserSession

Čo je vidieť na nižšie uvedenom obrázku.

Poznámka: Táto snímka bola urobená na serveri Server 2012, kde nájdete väčšinu technológií špecifických modulov.

Pred chvíľou som čítal článok Don Jonesa, Kmotr PowerShell, kde vysvetlil, že Exchange, ktorá bola pred touto predponou pridaná, bola pridaná do cmdletov, takže ich nikdy nerealizovala a nikdy nebude.

Aliasy

Ďalšou funkciou PowerShell je schopnosť mať viacero spôsobov spustenia rovnakého príkazu - aliasy, ak chcete.Úžasná vec je, že zahŕňali veľa príkazov, ktoré ste použili v príkazovom riadku, ako aj niektoré Linuxové aliasy. Napríklad v programe PowerShell môžeme získať zoznam adresárov pomocou:

Get-ChildItem

Používa sa na použitie príkazového riadka? Nebojte sa, máte zakryté.

Máte Linuxové pozadie? Máte tam aj tam kryt.

Keď ste skriptovali niekoľko rokov, máte tendenciu byť leniví a začať používať aliasy veľa, ale to nepomôže nováčikom, ktorí čítajú náš kód. Ak chcete zistiť, aký príkaz je spustený pod kapotou, môžete použiť nasledovné:

Get-Alias ​​-me ls

Na druhej strane, ak máte pocit, že je čas, aby ste vyskúšali svoju hru, môžete použiť parametre definície, aby ste získalivšetky aliasy pre cmdlet:

Get-ChildItem-Definícia Get-ChildItem

Ak pochádza z nejakého iného prostredia, môžete pridať svoje vlastné aliasy tým, že urobíte nasledovné:

New-Alias ​​-Name icanhazfilez -Value Get-ChildItem

Je zrejmé,budete musieť nahradiť "icanhazfilez" s názvom vášho nového aliasu a Get-ChildItem s rutinou, ktorú chcete spustiť pod kapotou.

Treba poznamenať, že stratíte všetky aliasy, ktoré ste definovali pri zatvorení shellu. Môžete sa dostať okolo tým, že pridáte ich definíciu do vášho profilového skriptu. Skrátené parametre

Windows PowerShell tiež umožňuje skrátiť názvy parametrov až do bodu, v ktorom sa stanú nejednoznačné, to znamená až do okamihu, keď PowerShell už nedokáže zistiť, o ktorom parametri hovoríte. Napríklad:

Get-Service -name "Apple Mobile Device" - názov počítača localhost

Je to rovnaké ako:

Get-Service - "Apple Mobile Device" -com localhost

Ak si náhodou urobíte názvy parametrov príliš nejednoznačnésa zobrazí chyba. Príkazy

Legacy

Nakoniec príkazy, ktoré poznáte a budete milovať, budú stále pracovať v systéme PowerShell.

ping www.google.com

Len si pamätajte, že staršie aplikácie, ako napríklad ping výstup reťazec, a tam je často lepší spôsob, ako robiť to isté pomocou PowerShell cmdlet.

Namiesto výstupu dlhého reťazca textu sme teraz odišli s objektom, na ktorý sa budeme pozrieť na zajtrajšom vydavateľstve Geek School.