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