10Aug

Geek School: učení se používat Cmdlets v PowerShell

click fraud protection

Pokud jste použili 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 představující PowerShell a zůstaňte v klidu po celý týden po celý týden.

Anatomie cmdletu

V první části série jsme viděli cmdlet, který vypadal takto:

Update-Help

PowerShell cmdlety mají syntaxi Verb-Noun, kterou vidíme 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 si jedinečné pravidlo podstatného jména opravdu pomáhá odhadnout názvy cmdletů.Předpokládejme například, že chcete, aby získal seznam služeb a jejich stav - to je správné, je stejně snadné jako Get-Service. Jak myslíte, že bychom dostali seznam běžících procesů - to je pravda, Get-Process bude dělat trik.

instagram viewer

Get-Process

Díky tomu je snadné pracovat s jakoukoli technologií.Například pokud jste měli cmdlety Exchange načteny, mohli bychom snadno získat seznam poštovních schránek na serveru pomocí:

Get-Mailbox

Nicméně existuje výjimka. Výměna stran, všechny ostatní příkazy specifické pro technologii vyžadují předponu. Například pokud bychom chtěli dostat uživatele, kteří jsou aktuálně přihlášeni prostřednictvím vzdálené plochy, měli bychom zadat:

Get-RDUserSession

Který může být 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, Kmotr z PowerShell, kde vysvětlil, že Exchange předtím, než byla tato předpona přidána do cmdletů, tak to nikdy neinformovalo a nikdy nebude.

Aliasy

Dalším prvkem, který PowerShell přináší, je schopnost mít více způsobů spuštění stejného příkazu - aliasy, pokud chcete.Úžasná věc na nich je, že obsahují mnoho příkazů, které jste použili v příkazovém řádku, stejně jako některé aliasy Linuxu. Například v PowerShell můžeme získat seznam adresářů pomocí:

Get-ChildItem

Používá se k použití příkazového řádku? Nemějte strach, máte pokryté.

Máte Linuxové pozadí?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áčkům, kteří si přečtou náš kód. Chcete-li zjistit, jaký příkaz má alias běží pod kapucí, můžete použít následující:

Get-Alias ​​-me ls

Na druhou stranu, pokud máte pocit, že je čas uvést do hry, můžete pomocí parametru definice použítvšechny aliasy pro cmdlet:

Get-ChildItem-Definice Get-ChildItem

Pokud pocházíte z nějakého jiného pozadí, můžete přidat své vlastní aliasy tím, že uděláte následující:

Nové-Aliasy -Name icanhazfilez -Value Get-ChildItem

Je zřejmé,budete muset nahradit "icanhazfilez" názvem nového aliasu a Get-ChildItem pomocí rutiny, kterou chcete spustit 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. Můžete se obejít tím, že přidáte jejich definici do profilového skriptu. Parametry zkrácení

Windows PowerShell také umožňuje zkrátit názvy parametrů až do okamžiku, kdy se stanou dvojznač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

Stejné jako:

Get-Service - 'Apple Mobile Device' -Com localhost

Pokud nějakým způsobem uděláte názvy parametrů příliš nejednoznačnédostanete chybu.

Legacy příkazy

Nakonec příkazy, které znáte a máte rádi, budou stále pracovat 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.