Geek School učí používat Cmdlets v PowerShell
Pokud jste použili příkaz ipconfig nebo ping přes příkazový řádek, jste na půli cesty k tomu, abyste se stali PowerShell ninja. Tak pojďte a připojte se k nám, když objevíme cmdlety v této instalaci Geek School.
Nezapomeňte se podívat na náš první článek, který představuje PowerShell, a po celý týden zůstaňte doladěni na zbytek našich sérií.
Anatomie koule
V první části seriálu jsme viděli cmdlet, který vypadal takto:
Aktualizace - Nápověda
Řetězy PowerShell mají syntaxi Verb-Noun, kterou lze vidět výše. Důležité je poznamenat, že podstatné jméno je vždy jedinečné, přestože cmdlet může vrátit více než jeden výsledek. Chcete-li zobrazit seznam právních sloves v programu PowerShell, můžete použít cmdlet Get-Verb.
Znát právní slovesa a pamatovat na singulární pravidlo podstatného jména opravdu pomáhá odhadnout názvy cmdletů. Předpokládejme například, že chcete dostat seznam služeb a jejich status - to je pravda, je to stejně snadné jako Get-Service. Jak si myslíte, že bychom to udělali dostat seznam běhu procesů - to je pravda, Get-Process bude dělat trik.
Get-Process
Díky tomu je opravdu snadné pracovat s jakoukoli technologií. Například pokud jste měli cmdlety Exchange, mohli bychom snadno získat seznam poštovních schránek na serveru pomocí:
Get-Mailbox
Existuje však výjimka. Výměna stran, všechny ostatní příkazy specifické pro technologii budou vyžadovat předponu. Pokud bychom například chtěli dostat uživatele, kteří jsou aktuálně přihlášeni prostřednictvím služby Vzdálená plocha, zadejte:
Get-RDUserSession
Které je vidět na obrazovce níže.
Poznámka: Tato obrazovka byla pořízena na poli Server 2012, kde najdete většinu technologických modulů.
Před chvílí jsem četl článek od Don Jonesa, křtítka PowerShell, kde vysvětlil, že Exchange odeslaný předtím, než byl tento prefix přidán do cmdletů, takže je nikdy nerealizoval a nikdy.
Aliasy
Další funkce, kterou přináší PowerShell, je schopnost mít více způsobů spuštění stejného příkazu - aliasy, pokud chcete. Úžasná věc je, že obsahují mnoho příkazů, které jste použili v příkazovém řádku, a také některé aliasy Linuxu. Například v programu PowerShell můžeme získat seznam adresářů pomocí:
Get-ChildItem
Používá se k použití příkazového řádku? Nemějte strach, mají vás pokryté.
Máte pozadí Linuxu? Máte tam i tu pokryté.
Když jste skriptovali pár let, máte tendenci být líní a začít používat aliasy hodně, ale to nepomůže novým příchozím, kteří si přečtou náš kód. Chcete-li zjistit, jaký příkaz má alias pod kapotou, můžete použít následující:
Get-Alias -Jsem ls
Na druhou stranu, pokud se domníváte, že je čas uvést do hry, můžete pomocí parametru definice získat všechny aliasy pro cmdlet:
Get-ChildItem-Definice Get-ChildItem
Pokud pocházíte z nějakého jiného prostředí, můžete přidat vlastní aliasy následujícím postupem:
Nové aliasy - jmenuji se icanhazfilez -Value Get-ChildItem
Je zřejmé, že budete muset nahradit "icanhazfilez" názvem vašeho nového aliasu a Get-ChildItem pomocí rutiny, kterou chcete používat pod kapotou.
Jedna věc, kterou je třeba poznamenat, je, že ztratíte všechny aliasy, které jste definovali při zavření shellu. Toto můžete obejít přidáním definice do svého profilového skriptu.
Zkrácené parametry
Systém Windows PowerShell také umožňuje zkrátit názvy parametrů až do okamžiku, kdy se stanou nejednoznačnými, to znamená až do okamžiku, kdy PowerShell již nemůže zjistit, o kterém parametru mluvíte. Například:
Get-Service - pojmenujte 'Apple Mobile Device' - název_počítače localhost
Je stejné jako:
Get-Service - "Mobilní zařízení společnosti Apple" -Com localhost
Pokud si náhodně uděláte názvy parametrů příliš nejasné, dostanete chybu.
Legacy příkazy
Nakonec příkazy, které znáte a milujete, budou stále fungovat v PowerShell.
ping www.google.com
Jen si pamatujte, že starší aplikace, jako je ping výstup řetězec, a tam je často lepší způsob, jak dělat totéž pomocí PowerShell cmdlet.
Namísto výstupu dlouhého řetězce textu jsme nyní ponecháni s objektem, na který se podíváme v zítřejším vydání Geek School.