If-Koubou

Гейк училище: Научете как да автоматизирате Windows с PowerShell

Гейк училище: Научете как да автоматизирате Windows с PowerShell (Как да)

В това издание на Geek School ще ви помогнем да разберете мощния PowerShell скриптов език, който е изграден точно в Windows, и е изключително полезен в IT среда.

Докато тази серия не е структурирана около изпита, ученето на PowerShell е едно от най-важните неща, които можете да направите като мрежов администратор, така че ако има едно нещо, което искате да научите, за да помогнете в ИТ кариерата си, това е всичко. Плюс това, това е много забавно.

Въведение

PowerShell е най-мощният инструмент за автоматизация, който Microsoft може да предложи, както и черупка и скриптов език.

Моля, имайте предвид, че тази серия е базирана на PowerShell 3, която се доставя с Windows 8 и Server 2012. Ако използвате Windows 7, моля, изтеглете актуализацията на PowerShell 3, преди да продължите.

Запознайте се с конзолата и ISE

Има два начина за взаимодействие с PowerShell от кутията, конзолата и интегрираната среда за сканиране - известна още като ISE. ISE се е подобрила значително от скритата версия, която е доставена с PowerShell 2 и може да бъде отворена чрез натискане на клавишната комбинация Win + R, за да се появи работна кутия, след това да се напишат powershell_ise и да се натисне enter.

Както можете да видите, ISE има спортен изглед, за да можете бързо да сканирате, докато все още можете да видите резултата в долната половина на ISE. Долната половина на ISE, където са отпечатани резултатите от вашия скрипт, може да се използва и като REPL prompt - подобно на командния ред. В3 ISE най-накрая добави поддръжка за intellisense както в скрипта, така и в интерактивната конзола.

Друга възможност е да си взаимодействате с PowerShell, като използвате конзолата PowerShell, което ще използвам по-голямата част от тази серия. Конзолата PowerShell се държи много подобно на командния ред - просто въвеждате команди и изплюва резултатите. За да отворите конзолата за Windows PowerShell, отново натиснете клавишната комбинация Win + R, за да отворите поле за изпълнение и да напишете мощност, след което натиснете enter.

Репликите на REPL като това са страхотни за незабавно удовлетворение: въвеждате команда и получавате резултати. Докато конзолата не предлага intellisense, тя предлага нещо, наречено завършване на раздели, което функционира почти същите - просто започнете да пишете команда и натиснете раздела, за да преминете през възможни съвпадения.

Използване на системата за помощ

В предишни версии на PowerShell са включени помощни файлове, когато сте инсталирали Windows. Това беше добро решение в по-голямата си част, но ни остави сериозен проблем. Когато помощният екип на PowerShell трябваше да спре да работи върху помощните файлове, разработчиците на PowerShell все още бяха натоварени с кодирането и извършването на промени. Това означаваше, че при изпращането на PowerShell помощните файлове са неправилни, защото не съдържат по-новите промени, направени в кода. За да реши този проблем, PowerShell 3 се предлага без помощни файлове от кутията и включва актуализираща се помощна система. Това означава, преди да направите всичко, което ще искате да изтеглите най-новите помощни файлове. Можете да направите това, като отворите конзолата PowerShell и стартирате:

Актуализация-Помощ

Поздравления за пускането на първата си команда PowerShell! Истината е, че командата "Актуализация-Помощ" има много повече възможности, отколкото просто да я изпълнявате, и за да ги видим, ще поискаме да видите помощта за командата. За да видите помощта за команда, просто предавате името на командата, с която искате помощ, до параметъра Name на командата Get-Help, например:

Get-Help - Намерете Update-Help

Вероятно се чудите как да интерпретирате целия текст, разбирам защо има две много информация под раздел "Синтаксис" и защо има толкова много скоби навсякъде? Първите неща: първо, причината за това са две блокове от информация в секцията за синтаксис, защото те представляват различни начини за изпълнение на командата. Те са технически наречени комплекти параметри и можете да използвате само един по един (не можете да смесвате параметри от различни групи). В горната екранна снимка можете да видите, че най-горният набор от параметри има параметър SourcePath, докато в долната част няма. Причината е, че бихте използвали горния набор от параметри (този, който включва SourcePath), ако актуализирате помощните си файлове от друго устройство в мрежата, което вече сте ги изтеглили, докато не е необходимо да посочите пътя на източника, ако просто исках да вземете най-новите файлове от Microsoft.

За да отговорите на втория въпрос, има определен синтаксис, че файловете за помощ следват и тук е:

  • Квадратните скоби около името на параметъра и неговия тип означават, че той е незадължителен параметър и командата ще работи добре без него.
  • Квадратните скоби около имената на параметрите означават, че параметрите са позиционен параметър.
  • Нещата отдясно на параметър в ъгловите скоби ви съобщават типа данни, който параметърът очаква.

Докато трябва да се научите да четете синтаксиса на помощния файл, ако някога не сте сигурни за даден параметър, просто добавете "Пълен" до края на командата за получаване на помощ и превъртете надолу до секцията за параметри, където ще ви разкаже малко повече за всяка параметър.

Get-Help -Намерете Update-Help -Пълен

Последното нещо, което трябва да знаете за системата за помощ, е как можете да я използвате, за да откриете командите, което всъщност е много лесно. Виждате ли, PowerShell приема заместващи знаци почти навсякъде, така че използването им заедно с командата Get-Help ви позволява лесно да откривате команди. Например, аз търся команди, които се занимават с Windows Services:

Получаване на помощ - Наименование * услуга *

Разбира се, цялата тази информация може да не е полезна за прилепа, но повярвайте ми, отделете време и научете как да използвате системата за помощ. Той е удобен през цялото време, дори и за напреднали писатели, които правят това от години.

Сигурност

Това не би било подходящо въведение, без да се споменава сигурността.Най-голямото притеснение за екипа на PowerShell е, че PowerShell се превръща в най-новата и най-голяма атака за детските играчи. Те са поставили няколко мерки за сигурност, за да се уверят, че това не се случи, така че нека да ги разгледаме.

Най-основната форма на защита произтича от факта, че разширението на файловете за PS1 (разширението, използвано за означаване на PowerShell скрипт), не е регистрирано с хост PowerShell, всъщност е регистриран в Notepad. Това означава, че ако кликнете два пъти върху файл, ще се отвори с бележник, вместо да се изпълнява.

На второ място, не можете да стартирате скриптове от корпуса, просто като напишете името на скрипта, трябва да зададете пълния път към скрипта. Така че, ако искате да изпълните скрипт на вашия C диск, ще трябва да въведете:

C: \ runme.ps1

Или ако вече сте в основата на C устройството, можете да използвате следното:

. \ Runme.ps1

И накрая, PowerShell има нещо, наречено Изпълнение Политики, което ви спре от просто стартиране на някакъв стар скрипт. Всъщност по подразбиране не можете да стартирате скриптове и трябва да промените политиката си за изпълнение, ако искате да им позволите да ги пускате. Има 4 забележителни правила за изпълнение:

  • Ограничен: Това е конфигурацията по подразбиране в PowerShell. Тази настройка означава, че не може да се изпълнява скрипт, независимо от неговия подпис. Единственото нещо, което може да се изпълнява в PowerShell с тази настройка, е индивидуална команда.
  • AllSigned: Тази настройка позволява скриптовете да се изпълняват в PowerShell. Скриптът трябва да има асоцииран цифров подпис от надежден издател. Ще има подкана, преди да стартирате скриптовете от надеждни издатели.
  • RemoteSigned: Тази настройка позволява скриптове да се изпълняват, но изисква скриптовете и конфигурационните файлове, които са изтеглени от Интернет, да имат асоцииран цифров подпис от надежден издател. Скриптовете, изпълнявани от локалния компютър, не е необходимо да бъдат подписани. Няма указания, преди да стартирате скрипта.
  • неограничен: Това позволява да се изпълняват неподписани скриптове, включително всички скриптове и конфигурационни файлове, изтеглени от Интернет. Това ще включва файлове от Outlook и Messenger. Рискът тук е работа скриптове без никакъв подпис или сигурност. Потвърдихме, че никога не сте ни тази настройка.

За да видите какви са текущите Ви правила за изпълнение, отворете конзолата PowerShell и въведете:

Get-ExecutionPolicy

За този курс и повечето други обстоятелства Правилата за отдалечен подпис е най-доброто, така че продължете и променете правилата си, като използвате следното.

Забележка: Това трябва да бъде направено от издигната конзола PowerShell.

Set-ExecutionPolicy RemoteSigned

Това е всичко за това време хора, ще ви видя утре за още по-забавно PowerShell.

Отказ от отговорност: Правилният термин за командата PowerShell е cmdlet и отсега нататък ще използваме тази правилна терминология. Просто се чувстваше по-подходящо да им се обадят команди за това въведение.

Ако имате някакви въпроси, можете да ми пишете @taybgibb или просто да оставите коментар.