Въведение в Power Shell

Първи стъпки
Windows PowerShell 2.0 беше издаден с Windows 7 и Windows Server 2008 R2 като неразделна част от системата. Освен това втората версия е достъпна и за други системи като Windows XP SP3, Windows Server 2003 SP2, Windows Vista SP1 и Windows Server 2008.
Windows PowerShell е изграден и интегриран с Microsoft NET Framework. Освен това PowerShell осигурява удобен достъп до COM, WMI и ADSI, както и ви позволява да изпълнявате редовни команди от командния ред, за да създадете единна среда, в която администраторите могат да изпълняват различни задачи на локални и отдалечени системи.
Работа с екипи
Разработчиците на PowerShell са оборудвали тази обвивка с персонализиран скриптов език, изграден съгласно стандарта .NET Framework. Командата в PowerShell се нарича cmdlet или cmdlet в оригинала. Командлетът е подобен на функция, тъй като изпълнява определена задача, като извличане на съдържанието на папка или актуализиране на запис в системния регистър, и има параметри, които могат да променят изхода на командата.
Повече от 100 команди са вградени в PowerShell. Можете също да създадете допълнителни команди, но трябва да използвате .NET език като Visual Basic .NET или C #.
Всяка разновидност на командата е глаголно-съществителна комбинация. Това е така, защото Microsoft искаше да използва последователна схема за именуване, за да улесни ученето и разширяването на PowerShell. Глаголът показва действието, което трябва да се извърши, а съществителното указва вида на обекта, над който ще се извърши това действие. Например командата Get-ChildItem чете списък с елементи в текущата работна директория или контейнер, като регистър. За да изпълните команда, въведете я в подканата на PowerShell и натиснете enter. Резултатът от командата ще се покаже непосредствено под въведената команда.

Фигура: 1. Команда Get-ChildItem
Команди за получаване на помощ
PowerShell се доставя с набор от помощни файлове и първо трябва да се научите как да работите с тези помощни материали. За да разберете какви команди са налични в PowerShell, използвайте командата Get-Command. Фигура 2 показва изхода на тази команда, това е списък с команди. В този списък можете да видите имената на командите и техния синтаксис, но няма описание на това, което прави всяка команда.

Фигура 2. Get-Command
Можете да използвате командата Get-Help, за да получите тази информация. Ако въведем само Get-Help, тогава ще получим помощ за него самия.

Фигура: 3. Команда Get-Help
Както можете да видите от командата Get-Help, за да получите помощ за конкретна команда, трябва да въведете името на командата веднага след Get-Help. Нека видим помощта за командата Get-Command, която вече познаваме. За целта въвеждаме:

Get-Command, в този случай, е параметър за командата Get-Help и подобно на командните параметри в командния ред cmd.exe, командните параметри PowerShell предоставят информацията, необходима на командите, за да си свършат работата.

Препоръчвам да четете на хартиен носител.

Фигура: 5. Помощ за получаване на команди
Получихме списък с команди, започващи с Get. Нека използваме командата Get-Content за работа с файлове. Нека да разгледаме помощната информация за командата Get-Content. За целта въвеждаме:

Фигура: 6. Команда Get-Help Get-Content
Както е показано на Фигура 6, командата Get-Help Get-Content връща описание на командата Get-Content и информация за нейния синтаксис. От тази помощ научихме, че командата Get-Content връща съдържанието на елемент, който в този случай сочи към всеки тип файл в системата. В миналото администраторът можеше да е трябвало да използва командата For, за да работи с партидни файлове или File-SystemObject в скрипт на Windows Script Host (WSH), но в PowerShell просто трябва да стартирате командата Get-Content. За да получите по-подробна информация за синтаксиса, добавете параметъра -full към командата:

Фигура: 7. Команда Get-Help Get-Content -full
Обърнете внимание, че параметърът -full не е основен. Параметри от този тип се наричат превключващи параметри, тъй като те някак превключват поведението на командата.
Необходим артикул? (Задължително) посочва дали този параметър е задължителен или не. Кога се изисква променлива? (Задължителен английски) е вярно, параметърът трябва да бъде включен в командата. Ако се изисква същата променлива? (Задължителен английски) е зададено на false, тогава този параметър не е задължителен и може да бъде пропуснат при използване на командата.
Стойностна позиция? (Position English) ви позволява да прецените дали трябва да присвоите име на параметъра или можете да се обърнете към него по неговата позиция. Кога е променлива на позицията? (Позиция на английски език) присвоява посочената стойност, от което следва, че при препратка към този параметър трябва да се посочи името му. Кога е стойността на променливата Position? (Position English) се изразява като число, параметърът може да се препраща към неговото име или просто да посочи стойността на параметъра в правилната му позиция.
Например, както е показано на Фигура 8, когато изпълнявате командата Get-Content, трябва да посочите параметъра -Path, разгледайте този параметър по-подробно.

Фигура: 8. Параметър -Път
В променлива Задължително? е зададено на true, което означава, че този параметър е необходим за командата Get-Content. В променливата Position? има стойност 1, това означава, че можете да пропуснете името на параметъра, когато го въвеждате, просто трябва да го въведете веднага след името на командата (1-ва позиция).

Фигура: 9. Команда Get-Content E: 01.txt
където E: 01.txt е параметърът -Path

Фигура: 10. Файл E: 01.txt.
Ако стойността на параметъра съдържа интервали, стойността трябва да бъде затворена в кавички.
В помощната тема за ПАРАМЕТРИ името на всеки параметър е последвано от информация, затворена в ъглови скоби (). Тази информация показва вида на данните, към които трябва да бъде стойността на параметъра. Както е показано на фигура 8, стойността на параметъра -Path трябва да бъде низ. Ако името на типа е последвано от квадратни скоби [] (низ []), това означава, че масив от низове може да се използва като стойност на параметъра. В случай на използване на параметри на превключвателя, като например параметъра -Full, които не приемат стойности, тогава типът данни ще бъде посочен като .

Фигура: 11. Параметър -Пълен
Друга характеристика, свързана с параметри PowerShell, която си струва да се отбележи, е комбинацията за автоматично попълване на име на параметър. Потребителят трябва само да въведе достатъчно букви, които съставляват името на параметъра, за да може да се различава от другите параметри. Например Get-Help Get-Content -full е еквивалентно на Get-Help Get-Content -ful. Разделът за помощ ЗА БЕЛЕЖКИ съдържа също примери за това как може да се използва команда. Фигура 12 показва 3 примера за използване на командата Get-Help.

Фигура: 12. Примери за използване на командата Get-Help
Получаване на помощ за концепции


Фигура: 14. Команда Get-Help about_aliases
Фигура 14 показва част от данните за помощ, които са резултат от командата Get-Help about_aliases. Както виждаме, помощният файл предоставя преглед на стъпките за създаване и управление на псевдоними в PowerShell.
Използване на псевдоними
Някои имена на команди могат да бъдат доста дълги, което може да бъде досадно, ако трябва да въвеждате команди отново и отново от клавиатурата. За щастие, дизайнерите на PowerShell са предоставили възможността да използват псевдоними, за да се позовават на команди. Псевдонимът е алтернативно име, което обикновено е много по-кратко от действителното име на команда. PowerShell включва разнообразни вградени псевдоними, в допълнение към които потребителите могат да създават свои собствени псевдоними.

Фигура: 15. Команда Get-Alias
Текущата сесия се отнася до текущата връзка с процесора PowerShell. Когато PowerShell стартира, потребителят започва нова сесия; тази сесия продължава, докато потребителят затвори PowerShell, като по този начин прекратява връзката. В допълнение към всички вградени псевдоними и свързаните с тях команди, Get-Alias показва всички псевдоними, създадени по време на текущата сесия, както и псевдоними, зададени в профили, които са дефинирани от потребителя настройки за конфигурация, заредени в PowerShell всеки път, когато черупката стартира .

Фигура: 16. Команда Get-Alis -definition Get-ChildItem
Както е показано на фигура 16, PowerShell включва три псевдонима за достъп до командата Get-ChildItem, gci, ls и dir. Всеки от тях може да се използва вместо името на командата. По този начин всяка от следните четири команди изброява съдържанието на директорията C:

Фигура: 17. Команди Get-ChildItem c: и директория c:
Ако искаме да създадем свой собствен псевдоним в PowerShell, командата Set-Alias ще ни помогне. Нека създадем псевдоним за командата Get-Help. Използваме съкращението hlp. Командата, от която се нуждаем, ще изглежда така:

Фигура: 18. Set-Alias hlp Команда Get-Help и генериран hlp псевдоним
След това, когато имате нуждаетажпрекарайте командата Get-Help, можете да използвате псевдонима hlp. Този псевдоним може да се използва до края на сесията (т.е. преди PowerShell да бъде затворен). Обмислитези, които при дефиниране на псевдоним не са снабдени с опции, можете да използвате самокъм името на командата. Ако искате да дефинирате връзка към команда и нейните параметри, трябва да създадете специална функция.