Урок за Powershell за начинаещи

⚡ Умно обобщение

PowerShell Scripting е обектно-ориентиран механизъм за автоматизация, изграден върху .NET Framework. Той комбинира cmdlets, скриптове и скриптов език, за да помогне на ИТ администраторите да автоматизират Windows, управлявайте услуги и свързвайте отдалечени машини от един команден ред.

  • ???? Стартирайте дясната обвивка: Отворете PowerShell или PowerShell ISE от менюто „Старт“ и го стартирайте като администратор, когато имате нужда от повишени права.
  • 🧩 Използвайте командлети, а не текстови команди: Командлетите следват модел на именуване на глагол-съществително име и връщат .NET обекти, така че изходът може да се предава на следващия командлет чрез конвейер.
  • 🔐 Внимателно задайте политиката за изпълнение: Използвайте Set-ExecutionPolicy с RemoteSigned, за да балансирате безопасността и удобството при изпълнение на .ps1 скриптове.
  • 📁 Напишете многократно използваеми .ps1 скриптове: Комбинирайте командлети, променливи и конвейери в текстов файл с разширение .ps1, за да автоматизирате повтарящи се администраторски задачи.
  • 🤖 Свържете PowerShell с AI: Асистентите с изкуствен интелект превръщат заявките на обикновен английски език в готови за изпълнение PowerShell скриптове и обясняват непознати командлети ред по ред.

Урок за Powershell за начинаещи

Какво е PowerShell?

Windows PowerShell е обектно-ориентиран механизъм за автоматизация и скриптов език. Той е предназначен за ИТ специалисти и системни администратори, които трябва да контролират и автоматизират администрирането на Windows и други приложения. PowerShell разширява концепциите, изучени в Windows Команден ред и Windows Скрипт хост с нови обекти, командлети и мощен конвейер.

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

Защо да използваме PowerShell?

Най-важните причини да използвате PowerShell са:

  • Предлага добре интегрирано изживяване от командния ред за операционната система.
  • Осигурява пълен достъп до всеки тип в .NET framework.
  • Доверен от системните администратори в различни предприятия.
  • Позволява ви да манипулирате компонентите на сървъра и работната станция с няколко реда.
  • Предназначено за системни администратори с изчистен глаголно-съществителен синтаксис.
  • По-сигурно от бягане vbscript или други наследени скриптови езици.

История на PowerShell

PowerShell 1.0 беше пуснат за първи път през 2006 г. PowerShell вече е във версия 7.2 и по-нова. С пускането на нови версии, неговите възможности и хостинг среди се увеличиха значително.

История на PowerShell по версии:

  • PowerShell 1.0 — подкрепена местна администрация на Windows 2003 сървър.
  • PowerShell 2.0 — интегриран с Windows 7 и Windows Server 2008 R2. Добавени са отдалечено взаимодействие, транзакции, фонови задачи, събития и отстраняване на грешки.
  • PowerShell 3.0 — доставен с Windows 8 и Windows Сървър 2012 като част от Windows Рамка за управление. Добавени са планирани задачи, свързаност на сесии и автоматично зареждане на модули.
  • PowerShell 4.0 — доставен с Windows 8.1 и Windows Server 2012 R2. Добавена е конфигурация на желаното състояние, подобрено отстраняване на грешки и мрежова диагностика.
  • PowerShell 5.0 — част от Windows Management Framework 5. Добавени са отдалечено дебъгване, дефиниции на класове и .NET изброявания.
  • PowerShell 7.2 — изграден върху .NET 6.0. Добавя нови оператори, динамични изгледи за грешки и автоматични известия за версии.

Характеристики на PowerShell

  • Отдалечено взаимодействие с PowerShell: извикване на скриптове и командлети на отдалечена машина.
  • Фонови задачи: изпълнявайте скриптове или конвейери асинхронно на локалната машина или на много отдалечени машини.
  • Сделки: позволяват на командлетите и разработчиците да извършват групирани операции, които могат да бъдат извършени заедно (commit) или отменени (rollback).
  • Събитие: слушайте, препращайте и действайте въз основа на управленски и системни събития.
  • Мрежово прехвърляне на файлове: вградена поддръжка за приоритизиран, асинхронен, ограничен трансфер на файлове между машини чрез услугата за интелигентно прехвърляне във фонов режим (BITS).

Как да стартирате PowerShell

PowerShell е предварително инсталиран на всяка скорошна версия на WindowsСтартирайте го, както следва.

Стъпка 1) Потърсете PowerShell в Windows, след което го изберете и щракнете върху него.

Стартирайте PowerShell

Стъпка 2) Отваря се прозорецът на PowerShell.

Прозорец на PowerShell

Cmdlet срещу команда

A командлет (произнася се „command-let“) е лека команда, използвана в средата на PowerShell. PowerShell извиква командлети (cmdlets) от командния ред и можете да създадете свои собствени, използвайки PowerShell API. Командлетите се различават от традиционните команди на shell по следните начини:

  • Кратки команди са . NET Framework обекти от клас; те не могат да бъдат изпълнени като самостоятелни изпълними файлове.
  • Командлетите могат да бъдат написани само с дузина реда код.
  • Разборът, форматирането на изхода и представянето на грешки се обработват от средата за изпълнение, а не от самата команда.
  • Командлетите работят с обекти, така че текстовите потоци и обектите могат да преминават през канали.
  • Командлетите са базирани на записи и обработват по един обект в даден момент.

Повечето функционалности на PowerShell се предоставят чрез командлети, които винаги използват модел на именуване глагол-съществително (винаги в единствено число). Командлетите връщат обекти, а не текст. писменост — различна от командлет — е поредица от команди, съхранени в текстов файл с .ps1 удължаване.

Често срещани глаголи, които ще използвате, за да научите PowerShell, включват:

  • Обратна — извличам нещо.
  • Начало — пускам нещо.
  • от — изведете нещо.
  • Спиране — спиране на нещо, което работи.
  • комплект — дефинирам нещо.
  • НОВ — създай нещо.

Важни PowerShell команди

Извикай помощ: преглед на помощ за команди и теми на PowerShell.

Пример: показване на помощ за Format-Table команда.

Get-Help Format-Table

Командлет Get-Help

Get-Command: получаване на информация за всичко, което може да бъде извикано.

Пример: генериране на списък с командлети и функции, инсталирани на машината.

Get-Command

Командлет Get-Command

Get-Service: намира всички услуги на машината.

Пример: вземете всяка услуга, чието име започва с „vm“.

Get-Service "vm*"

Командлет Get-Service

Get-Member: покажете какво може да се направи с даден обект.

Пример: списък с членовете на виртуалните услуги, върнати от Get-Service.

Get-Service "vm*" | Get-Member

Командлет Get-Member

Други полезни командлети:

  • Get-Module — показване на инсталирани пакети с команди.
  • Get-Content — четене на файл и обработка на неговото съдържание.
  • Get-* wildcard — избройте всички cmdlet-и, които започват с „Get-“.

Пример: създайте папка.

New-Item -Path 'X:\Guru99' -ItemType Directory

Изход:

Изход за нов елемент

Типове данни в PowerShell

PowerShell поддържа стандартните типове данни на .NET, така че можете да съхранявате всяка стойност чисто в променлива.

Типове данни в PowerShell

��пециални променливи

PowerShell предоставя редица вградени специални променливи. Най-полезните от тях са изброени по-долу.

Специална променлива Descriptйон
$Error Масив от обекти за грешки, представляващи най-скорошните грешки.
$Host Показва името на текущото приложение за хостинг.
$Профил Съхранява пълния път на потребителския профил за обвивката по подразбиране.
$PID Съхранява идентификатора на процеса.
$PSUICulture Съдържа името на текущата култура на потребителския интерфейс.
$NULL Съдържа празната или null стойност.
$False Съдържа булевата стойност FALSE.
$True Съдържа булевата стойност TRUE.

Скриптове на PowerShell

PowerShell скриптовете се съхраняват в .ps1 файлове. По подразбиране не можете да стартирате скрипт, като щракнете двукратно върху него — тази предпазна мярка предпазва системата от случайно увреждане. За да изпълните скрипт, щракнете с десния бутон върху него и изберете „Стартирай с PowerShell“.

Стартиране с PowerShell

Политиката за изпълнение контролира кои скриптове могат да се изпълняват. Вижте текущата политика с Get-ExecutionPolicyВъзможните стойности включват:

  • Ограничен — не са разрешени скриптове. Това е настройката по подразбиране.
  • AllSigned — изпълняват се само скриптове, подписани от доверен разработчик, и всеки от тях изисква потвърждение.
  • RemoteSigned — изпълняват се вашите собствени скриптове, както и подписани скриптове от надеждни източници.
  • неограничен — всеки скрипт може да се изпълни (използвайте пестеливо).

Стъпки за промяна на политиката за изпълнение:

Стъпка 1) Отворете подканата на PowerShell с повишени права, като щракнете с десния бутон върху PowerShell и изберете Изпълни като администратор.

Стартирайте PowerShell като администратор

Стъпка 2) Изпълнете командите по-долу.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. Въведете Y при подкана за потвърждение.
  4. Get-ExecutionPolicy

Промяна на политиката за изпълнение

Първият PowerShell скрипт

Отворете Notepad и напишете:

Write-Host "Hello, Guru99!"

Запазете файла с .ps1 разширение — например, FirstScript.ps1.

Запазване на FirstScript.ps1

В PowerShell изпълнете скрипта с:

& "X:\FirstScript.ps1"

Изпълнете FirstScript.ps1

Какво е PowerShell ISE?

- Windows Интегрирана среда за скриптове (ISE) на PowerShell е редакторът по подразбиране за PowerShell. В ISE можете да изпълнявате команди, да пишете тестове и да отстранявате грешки в скриптове в графична, базирана на прозорец среда. Той поддържа многоредово редактиране, оцветяване на синтаксиса, довършване с табулация, селективно изпълнение и други.

PowerShell ISE предлага и конзолен панел, който изпълнява команди директно, докато страничните панели показват източника на вашите скриптове и всички инструменти, свързани към ISE. Можете да отваряте няколко прозореца на скриптове едновременно – полезно при отстраняване на грешки в скриптове, които зависят от функции, дефинирани в други скриптове или модули.

PowerShell ISE

Пресъздайте по-ранния скрипт в ISE:

  1. Поставете кода в редактора.
  2. Запазете скрипта.
  3. Натиснете F5, за да го стартирате.
  4. Наблюдавайте изхода в панела на конзолата.

Изпълнете скрипта в ISE

Пример 2: Следният скрипт показва безплатно виртуална памет на машината.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Безплатен скрипт за виртуална памет

PowerShell Concepts

Следните понятия формират речника на ежедневната работа с PowerShell.

Понятие Descriptйон
Cmdlets Вградени команди, написани на .NET езици като VB или C#. Разработчиците разширяват набора, като зареждат или пишат PowerShell конзолни модули.
Функции Команди, написани на самия език PowerShell, без да е необходима IDE, като например Visual Studio.
Scripts Текстови файлове на диск с .ps1 удължаване.
Приложения Съществуващ Windows програми, извиквани от обвивката.
Какво, ако Указва на командлета да не се изпълнява, а да опише какво би се случило, ако това се случи.
потвърждавам Указва на командлета да покаже команда преди изпълнение.
многословен Осигурява по-високо ниво на оперативна детайлност.
Debug Указва на командлета да генерира информация за отстраняване на грешки.
ErrorAction Определя какво прави командлетът при грешка. Допустими стойности: continue, stop, silentlycontinue, inquire.
ErrorVariable Назовава променливата, която съдържа информация за грешка.
OutVariable Указва на командлета да съхрани резултата си в определена променлива.
отBuffer Съдържа определен брой обекти, преди да ги изпрати по конвейера.

Предимства на използването на PowerShell скриптове

  • PowerShell скриптовете са мощни и кратки — можете да постигнете много само с няколко реда.
  • Променливите се декларират с $<variable> синтаксис.
  • Променливите могат да съдържат изходни данни от команди, обекти и примитивни стойности.
  • Типът на променливата не е необходимо да се посочва изрично.

PowerShell срещу команден ред

PowerShell Command Prompt
Дълбоко интегриран с WindowsПредлага интерактивен команден ред и пълен скриптов език. Интерфейсът за команден ред по подразбиране, предоставен от MicrosoftПросто Win32 приложение, което комуникира с други Win32 обекти.
Използва командлети, които могат да бъдат извикани интерактивно или чрез скриптове за автоматизация. Няма командлети.
Третира изхода като обекти, така че той да може да се прехвърли в друг cmdlet през конвейера. Изходът е обикновен поток от текст, а не обекти.
Разширени функции, възможности и вътрешна архитектура. Базова обвивка, подходяща за стари пакетни задачи.

Приложения на PowerShell

PowerShell се превърна в стандартен избор за ИТ администраторите, защото драстично намалява усилията в големи корпоративни мрежи. Представете си, че управлявате повече от четиристотин сървъра и внедрявате ново решение за сигурност, което зависи от специфична услуга, работеща на всеки хост.

Ръчното влизане във всеки сървър е бавно и податливо на грешки. Един PowerShell скрипт може да проучи всеки сървър за минути, да докладва кои хостове вече изпълняват услугата и дори да я активира на останалите. Скриптът улавя намерението веднъж и го прилага надеждно в целия сървър.

Въпроси и Отговори

PowerShell автоматизира Windows системна администрация — управление на услуги, файлове, потребители и сървъри — чрез обектно-ориентиран команден ред и скриптов език, изграден върху .NET framework.

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

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

Файлът .ps1 е PowerShell скрипт — текстов файл, съдържащ една или повече PowerShell команди. По подразбиране не може да се изпълни с двойно щракване; изпълнява се от конзолата или с „Изпълни с PowerShell“.

Отворете PowerShell като администратор и изпълнете Set-ExecutionPolicy със стойност като RemoteSigned или Unrestricted, след което потвърдете. Използвайте Get-ExecutionPolicy, за да проверите текущата настройка.

Интегрираната среда за скриптове (ISE) е вграденият графичен редактор на PowerShell за писане, изпълнение, тестване и отстраняване на грешки в скриптове, с оцветяване на синтаксиса, довършване с табулации и множество табулации за скриптове.

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

Да. Асистентите с AI код генерират пълни PowerShell скриптове от описание на разбираем английски език, като например „избройте всички спрени услуги и ги рестартирайте“ и обясняват всяка команда, за да можете да я прегледате преди изпълнение.

Обобщете тази публикация с: