Geek School се научава да използва Cmdlets в PowerShell
Ако сте използвали ipconfig или ping през командния ред, вие сте на половината път да станете PowerShell нинджа. Така че, елате и се присъединете към нас, докато откриваме cmdlet в тази инсталация на Geek School.
Не забравяйте да проверите първата ни статия, представяща PowerShell, и следете за останалата част от нашата серия цяла седмица.
Анатомията на Cmdlet
В първата част на серията видяхме кратка команда, която изглеждаше по следния начин:
Актуализация-Помощ
Кратки команди PowerShell имат синтаксис за глагол-съществително, който може да се види по-горе. Важното е да се отбележи, че съществителното винаги е единично, дори и ако cmdlet може да върне повече от един резултат. За да видите списък с юридически глаголи в PowerShell, можете да използвате кратката команда Get-Verb.
Познаването на легалните глаголи и запомнянето на еднократното правило на съществително в единствено число наистина помага да се познават имената на кратки команди. Да предположим например, че искате получавам списък с услуги и техния статус - това е правилно, толкова лесно, колкото и Get-Service. Как мислите, че бихме искали получавам списък на работа процеси - така е, Get-Process ще свърши работа.
Get-Process
Това улеснява работата с всяка технология. Например, ако сте заредени с кратки команди на Exchange, лесно бихме могли да получим списък с пощенски кутии на сървъра чрез:
Get-Mailbox
Въпреки това има изключение. Обмен настрана, всички други специфични за технологията команди ще изискват префикс. Например, ако искаме потребителите, които в момента са влезли в системата чрез отдалечен работен плот, да въведем:
Get-RDUserSession
Което може да се види на екрана по-долу.
Забележка: Тази снимка на екрана е направена на кутия на Server 2012, тъй като там ще намерите повечето от специфичните за технологията модули.
Преди време прочетох статия на Дон Джоунс, Кръстникът на PowerShell, където той обясни, че Exchange е доставял преди този префикс да е бил добавен към кратките команди, така че никога не ги е реализирал и никога няма да.
Псевдоними
Друга функция, с която PowerShell идва, е възможността да имате няколко начина на изпълнение на една и съща команда - псевдоними, ако искате. Страхотното нещо за тях е, че те включват много команди, които може да използвате в командния ред, както и някои псевдоними на Linux. Например в PowerShell можем да получим директория с помощта на:
Get-ChildItem
Използвали ли сте командния ред? Не се притеснявайте, те са ви покрили.
Имате фон на Linux? Там те също са покрили.
Когато сте писали няколко години, сте склонни да станете мързеливи и да започнете да използвате псевдоними много, но това не помага на новодошлите, които ще прочетат нашия код. За да видите коя команда се изпълнява под псевдонима, можете да използвате следното:
Вземи-Псевдоним -име
От друга страна, ако смятате, че е време да задействате играта си, можете да използвате параметъра на дефиницията, за да получите всички псевдоними за кратка команда:
Get-ChildItem -Definition Get-ChildItem
Ако идвате от друг фон, можете да добавите свои собствени псевдоними, като направите следното:
Нов псевдоним-име icanhazfilez -Value Get-ChildItem
Очевидно е, че ще трябва да замените „icanhazfilez“ с името на новия си псевдоним и Get-ChildItem с кратката команда, която искате да изпълнява под капака..
Едно нещо, което трябва да се отбележи е, че губите всички псевдоними, които сте дефинирали, когато затворите черупката. Можете да преодолеете това, като добавите дефиницията им към скрипта на потребителския си профил.
Отрязващи параметри
Windows PowerShell също ви позволява да съкращавате имената на параметрите до момента, в който те станат неясни, т.е. до момента, в който PowerShell вече не може да разбере за кой параметър говорите. Например:
Get-Service-име "Apple Mobile Device" -компютърно име localhost
Е същото като:
Get-Service -Na 'Apple мобилно устройство' -Com localhost
Ако случайно направите имената на параметрите твърде двусмислени, ще получите грешка.
Наследени команди
И накрая, командите, които познавате и обичате, ще продължат да работят в PowerShell.
пинг www.google.com
Само не забравяйте, че старите приложения, като ping извеждат низ, и често има по-добър начин да направите същото с помощта на кратка команда PowerShell.
Вместо да извеждаме дълъг низ от текст, сега оставаме с обект, който ще разгледаме в утрешното издание на Geek School.