Úvodná » ako » Geek School učenie používať Cmdlets v PowerShell

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

    Ak ste použili ipconfig alebo ping cez príkazový riadok, ste na polceste k tomu, aby ste sa stali PowerShell ninja. 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, ktorý predstavil funkciu PowerShell, a zostaňte na ladenie po zvyšok našich sérií po celý týždeň.

    Anatómia cmdlet

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

    Update-Help

    Ročníky PowerShell majú syntax Verb-Noun, ktorý je viditeľný vyššie. Dôležité je poznamenať, že podstatné meno je vždy jedinečné aj napriek tomu, že 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 podstatné meno skutočne pomáha hádať názvy cmdletov. Predpokladajme napríklad, že chcete dostať zoznam služby a ich postavenie - to je správne, rovnako jednoduché ako Get-Service. Ako si myslíte, že by sme to chceli dostať zoznam behu procesy - to je pravda, Get-Process bude robiť trik.

    Get-Process

    Tým je veľmi jednoduché pracovať s ľubovoľnou technológiou. Napríklad, ak ste mali nainštalované cmdlety Exchange, mohli by sme ľahko získať zoznam poštových schránok na serveri pomocou:

    Get-Mailbox

    Existuje však 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 vzdialenej pracovnej plochy, zadáme:

    Get-RDUserSession

    Čo je vidieť na obrazovke nižšie.

    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 od Don Jonesa, Kmotr PowerShell, kde vysvetlil, že Exchange, ktorý bol pred touto predponou pridaný do cmdletov, ich nikdy nerealizoval a nikdy.

    prezývky

    Ďalšou funkciou PowerShell je schopnosť mať viac spôsobov spustenia rovnakého príkazu - aliasy, ak chcete. Úžasná vec na nich 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, majú zakryté.

    Máte Linuxové pozadie? Mali ste tam tiež zakryté.

    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 ​​-Mám ls

    Na druhej strane, ak si myslíte, že je čas vyskúšať hru, môžete použiť parameter definície na získanie všetkých aliasov pre cmdlet:

    Get-ChildItem-Definícia Get-ChildItem

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

    Nové-Aliasy-áno icanhazfilez -Value Get-ChildItem

    Je zrejmé, že budete musieť nahradiť "icanhazfilez" s názvom vášho nového aliasu a Get-ChildItem s kódom, ktorý chcete spustiť pod kapotou.

    Treba poznamenať, že stratíte všetky aliasy, ktoré ste definovali pri zatvorení shellu. Môžete si to vyriešiť pridaním definície do svojho profilového skriptu.

    Skracovacie parametre

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

    Get-Service - nazýva sa "Apple Mobile Device" - názov počítača localhost

    Je to isté ako:

    Get-Service - "Mobilné zariadenie Apple" -Com localhost

    Ak ste náhodou urobili názvy parametrov príliš nejednoznačné, dostanete chybu.

    Staršie príkazy

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

    ping www.google.com

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

    Namiesto toho, aby sme zadali dlhý reťazec textu, necháme teraz objekt, ktorý sa pozrie na zajtrajšie vydanie Geek School.