Підручник Powershell для початківців

⚡ Розумний підсумок

PowerShell Scripting — це об'єктно-орієнтований механізм автоматизації, побудований на .NET Framework. Він поєднує командлети, скрипти та мову сценаріїв, щоб допомогти ІТ-адміністраторам автоматизувати Windows, керувати службами та підключатися до віддалених машин з одного командного рядка.

  • ???? Запустіть правильну оболонку: Відкрийте PowerShell або PowerShell ISE з меню «Пуск» і запустіть його від імені адміністратора, коли вам потрібні підвищені права.
  • 🧩 Використовуйте командлети, а не текстові команди: Командлети дотримуються шаблону іменування «дієслово-іменник» і повертають об'єкти .NET, тому вивід може надходити до наступного командлета через конвеєр.
  • 🔐 Ретельно встановіть політику виконання: Використовуйте Set-ExecutionPolicy разом із RemoteSigned, щоб поєднати безпеку та зручність під час запуску скриптів .ps1.
  • 📁 Напишіть багаторазові скрипти .ps1: Об’єднайте командлети, змінні та конвеєри в текстовому файлі з розширенням .ps1 для автоматизації повторюваних завдань адміністрування.
  • 🤖 Поєднайте PowerShell зі штучним інтелектом: Помічники зі штучним інтелектом перетворюють запити простою англійською мовою на готові до запуску сценарії 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 Сервер 2012 R2. Додано конфігурацію бажаного стану, покращене налагодження та діагностику мережі.
  • PowerShell 5.0 — частина Windows Management Framework 5. Додано віддалене налагодження, визначення класів та перелічення .NET.
  • PowerShell 7.2 — побудовано на .NET 6.0. Додає нові оператори, динамічні подання помилок та автоматичні сповіщення про версії.

Можливості PowerShell

  • Віддалена взаємодія PowerShell: викликати скрипти та командлети на віддаленій машині.
  • Фонові завдання: запускати скрипти або конвеєри асинхронно на локальній машині або багатьох віддалених машинах.
  • Операції: дозволяють командлетам і розробникам виконувати згруповані операції, які можна зафіксувати або відкотити разом.
  • Події: відстежувати, перенаправляти та діяти відповідно до управлінських та системних подій.
  • Мережева передача файлів: вбудована підтримка пріоритетної, асинхронної, обмеженої передачі файлів між машинами через службу фонової інтелектуальної передачі (BITS).

Як запустити PowerShell

PowerShell попередньо встановлено у кожній новітній версії WindowsЗапустіть його наступним чином.

Крок 1) Шукайте PowerShell у Windows, а потім виберіть і клацніть його.

Запустіть PowerShell

Крок 2) Відкриється вікно PowerShell.

Вікно PowerShell

Cmdlet проти команди

A командлет (вимовляється як «command-let») – це спрощена команда, що використовується в середовищі PowerShell. PowerShell викликає командлети в командному рядку, і ви можете створювати власні за допомогою API PowerShell. Командлети відрізняються від традиційних команд оболонки наступним чином:

  • Командлети є . 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-Service.

Get-Service "vm*" | Get-Member

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

Інші корисні командлети:

  • Get-Module — показати встановлені пакети команд.
  • Get-Content — прочитати файл та обробити його вміст.
  • Get-* підстановочний знак — перерахувати всі командлети, які починаються з «Get-».

Приклад: створити папку.

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

вихід:

Вивід нового елемента

Типи даних PowerShell

PowerShell підтримує стандартні типи даних .NET, тому ви можете зберігати будь-яке значення чисто у змінній.

Типи даних PowerShell

Спеціальні змінні

PowerShell надає доступ до низки вбудованих спеціальних змінних. Найкорисніші з них перелічені нижче.

Спеціальна змінна Опис
$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. Enter Y у запиті підтвердження.
  4. Get-ExecutionPolicy

Змінити політику виконання

Перший сценарій PowerShell

Відкрийте Блокнот і введіть:

Write-Host "Hello, Guru99!"

Збережіть файл за допомогою .ps1 розширення — наприклад, FirstScript.ps1.

Зберегти FirstScript.ps1

У PowerShell запустіть скрипт з наступним:

& "X:\FirstScript.ps1"

Запустіть FirstScript.ps1

Що таке PowerShell ISE?

Команда Windows Інтегроване середовище сценаріїв PowerShell (ISE) — це редактор за замовчуванням для 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.

Концепція Опис
Командлети Вбудовані команди, написані мовами .NET, такими як VB або C#. Розробники розширюють набір, завантажуючи або пишучи оснастки PowerShell.
Функції Команди, написані мовою PowerShell, без потреби в IDE, такі як Visual Studio.
Сценарії Текстові файли на диску з .ps1 розширення.
додатків існуючий Windows програми, що викликаються з оболонки.
А якщо Наказує командлету не виконуватися, а описувати, що станеться, якщо це станеться.
підтвердити Наказує командлету запитувати перед виконанням.
Verbose Забезпечує вищий рівень деталізації операцій.
Debug Наказує командлету видавати налагоджувальну інформацію.
ErrorAction Визначає, що робить командлет у разі помилки. Допустимі значення: continue, stop, silentlycontinue, inquire.
ErrorVariable Називає змінну, яка містить інформацію про помилку.
OutVariable Наказує командлету зберігати вивід у певній змінній.
ЗBuffer Зберігає певну кількість об'єктів перед тим, як відправити їх по конвеєру.

Переваги використання скриптів PowerShell

  • Скрипти PowerShell потужні та лаконічні — ви можете досягти багато чого лише кількома рядками.
  • Змінні оголошуються за допомогою $<variable> синтаксис
  • Змінні можуть містити вивід команд, об'єкти та примітивні значення.
  • Тип змінної не потрібно явно вказувати.

PowerShell проти командного рядка

PowerShell Командний рядок
Глибоко інтегрований з WindowsПропонує інтерактивний командний рядок та повну мову сценаріїв. Інтерфейс командного рядка за замовчуванням надається MicrosoftПроста програма Win32, яка взаємодіє з іншими об'єктами Win32.
Використовує командлети, які можна викликати інтерактивно або через сценарії автоматизації. Без командлетів.
Обробляє вивід як об'єкти, щоб він міг передаватися до іншого командлета через конвеєр. Вивід – це звичайний потік тексту, а не об'єктів.
Розширені функції, можливості та внутрішня архітектура. Базова оболонка, що підходить для застарілих пакетних завдань.

Застосування PowerShell

PowerShell став стандартним вибором для ІТ-адміністраторів, оскільки він значно скорочує зусилля у великих корпоративних мережах. Уявіть собі, що ви керуєте більш ніж чотирма сотнями серверів та розгортаєте нове рішення безпеки, яке залежить від певної служби, що працює на кожному хості.

Ручний вхід на кожен сервер є повільним і схильним до помилок. Один скрипт PowerShell може оглянути кожен сервер за лічені хвилини, повідомити, на яких хостах вже запущено службу, і навіть увімкнути її на решті. Скрипт фіксує намір один раз і надійно застосовує його по всій мережі.

Поширені запитання

PowerShell автоматизує Windows системне адміністрування — керування службами, файлами, користувачами та серверами — за допомогою об'єктно-орієнтованої мови командного рядка та сценаріїв, побудованої на платформі .NET.

Командлет — це легкий об'єкт класу .NET, який використовує ім'я у формі дієслова та іменника та повертає об'єкти. Традиційна команда в інших оболонках виводить звичайний текст і обробляє власний розбір і форматування.

PowerShell працює з об'єктами та підтримує командлети, сценарії та глибоку інтеграцію з .NET. Командний рядок — це базова текстова оболонка, команди якої виводять звичайний текст, а не об'єкти.

Файл .ps1 — це скрипт PowerShell, текстовий файл, що містить одну або кілька команд PowerShell. За замовчуванням його не можна запустити подвійним клацанням миші; він виконується з консолі або за допомогою команди «Запустити за допомогою PowerShell».

Відкрийте PowerShell від імені адміністратора та запустіть Set-ExecutionPolicy зі значенням, таким як RemoteSigned або Unrestricted, а потім підтвердіть. Використовуйте Get-ExecutionPolicy, щоб перевірити поточне налаштування.

Інтегроване середовище сценаріїв (ISE) — це вбудований редактор графічного інтерфейсу PowerShell для написання, запуску, тестування та налагодження сценаріїв із розфарбовуванням синтаксису, автодоповненням за допомогою табуляції та кількома вкладками сценаріїв.

Помічники на основі штучного інтелекту пропонують командлети, пояснюють поведінку скриптів і виявляють помилки під час введення тексту. Вони допомагають адміністраторам швидше автоматизувати завдання та перетворювати запити простою англійською мовою на робочі команди PowerShell.

Так. Помічники коду зі штучним інтелектом генерують повні скрипти PowerShell на основі опису простою англійською мовою, наприклад, «список усіх зупинених служб та їх перезапуск», та пояснюють кожен командлет, щоб ви могли переглянути його перед запуском.

Підсумуйте цей пост за допомогою: