10Aug
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.