Підручник Powershell для початківців: навчіться створювати сценарії Powershell

Почнемо вивчати Powershell Lessдодатки. Спочатку ми навчимося:

Що таке PowerShell?

Windows PowerShell це об’єктно-орієнтована система автоматизації та мова сценаріїв. Він призначений головним чином для ІТ-спеціалістів і системних адміністраторів для контролю та автоматизації адміністрування Windows ОС та інші програми. Він пропонує переконливі нові концепції для розширення знань, які ви отримали, і створених вами сценаріїв Windows Командний рядок і Windows Середовища Script Host.

Він поєднує в собі гнучкість сценаріїв, швидкість командного рядка та потужність інструменту адміністрування на основі графічного інтерфейсу. Це дає вам змогу ефективно вирішувати проблеми, допомагаючи системному адміністратору позбавитися від ручної роботи. Ми розглянемо всі важливі аспекти, які ви повинні знати, щоб вивчити PowerShell.

Це повний посібник із основ створення сценаріїв Powershell… почнемо!

Навіщо використовувати Powershell?

Ось деякі важливі причини використання Powershell:

  • Powershell пропонує добре інтегрований командний рядок для операційної системи
  • PowerShell надає повний доступ до всіх типів у платформі .NET
  • Довіряють системні адміністратори.
  • PowerShell — це простий спосіб керування компонентами сервера та робочої станції
  • Він призначений для системних адміністраторів, створюючи більш простий синтаксис
  • PowerShell більш безпечний, ніж запущений vbscript або інші мови сценаріїв

Історія PowerShell

Перша версія PowerShell 1.0 була випущена в 2006 році. Сьогодні PowerShell має версію 7.2. З роком і версією минали можливості PowerShell і середовища розміщення значно зросли.

Давайте ознайомимося з версією історії Powershell:

  • PowerShell версії 1 підтримував локальне адміністрування Windows Сервер 2003
  • PowerShell 2.0 інтегровано з Windows 7 і Windows Сервер 2008 R2. Ця версія підтримує віддалений зв’язок і покращує такі можливості PowerShell, як транзакції, фонові завдання, події, налагодження тощо.
  • PowerShell 3.0 було випущено як внутрішню частину Windows структура управління. Він був встановлений на Windows 8 і Windows Server 2012. Ви можете додавати та планувати завдання, підключення до сеансу, автоматичне завантаження модулів тощо.
  • PowerShell 4.0 постачався разом з Windows 8.1 і Windows Сервер 2012 R2. У цій версії додана підтримка бажаної конфігурації стану, розширене налагодження, діагностика мережі.
  • PowerShell 5.0 було випущено як внутрішню частину Windows структура керування 5. У цій версії пропонуються функції віддаленого налагодження, визначення класів, перерахування .NET тощо.
  • Випущено PowerShell 7.2. Він побудований на .NET 6.0. Ця версія пропонує нові оператори, спрощений і динамічний перегляд помилок, автоматичні сповіщення про нову версію тощо.

Далі в цьому посібнику зі створення сценаріїв Powershell ми дізнаємося про функції Powershell.

Особливості Powershell

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

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

Тепер у цьому посібнику зі сценаріїв Powershell ми дізнаємося, як запустити Powershell на Windows OS.

PowerShell попередньо встановлено в усіх останніх версіях Windows. Нам потрібно запустити PowerShell, для цього потрібно виконати наведені кроки:

Крок 1) Шукайте PowerShell у Windows. Виберіть і натисніть

Запустіть PowerShell

Крок 2) Відкривається вікно Power Shell

Запустіть PowerShell

Командлет PowerShell

Командлет, який також називається Command let, є легкою командою, яка використовується в середовищі Windows PowerShell. PowerShell викликає ці командлети в командному рядку. Ви можете створювати та викликати команди командлетів за допомогою PowerShell APIS.

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

Командлети відрізняються від команд в інших середовищах командної оболонки наступним чином?

  • Командлети є . NET Framework об'єкти класу Його не можна виконувати окремо
  • Командлети можуть складатися лише з десятка рядків коду
  • Синтаксичний аналіз, форматування виводу та представлення помилок не обробляються командлетами
  • Командлети обробляють об’єкти. Таким чином, текстовий потік і об’єкти не можуть бути передані як вихід для конвеєрної обробки
  • Командлети базуються на записах, тому вони обробляють один об’єкт за раз

Більшість функціональних можливостей PowerShell походить від командлета, який завжди має формат дієслова-іменника, а не множини. Крім того, командлет повертає об’єкти, а не текст. Командлет — це набір команд, який складається з кількох рядків і зберігається в текстовому файлі з розширенням .ps1.

Командлет завжди складається з дієслова та іменника, розділених дефісом. Ось деякі з дієслів, які використовуються для вивчення PowerShell:

  • отримати — Щоб отримати щось
  • Start — Керувати чимось
  • З — Щось вивести
  • Стоп — Зупинити те, що біжить
  • Установка — Щось визначати
  • Нові — Щось створити

PowerShell команд

Нижче наведено список важливих команд PowerShell:

Отримати допомогу: Довідка щодо команд і тем PowerShell

Приклад: відображення довідкової інформації про команду Format-Table

Get-Help Format-Table

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

Get-Command: Отримайте інформацію про все, що можна викликати

Приклад сценарію Powershell: для створення списку командлетів, функцій, встановлених на вашій машині

Get-Command

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

Get-Service: Знаходить усі командлети зі словом «служба».

Приклад: отримати всі служби, які починаються з «vm»

Get-Service "vm*"

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

Get- Member: Покажіть, що можна зробити з предметом

Приклад: отримати членів процесів vm.

Get-Service "vm*" | Get-Member

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

Інші команди:

  • Отримати модуль Показує пакети команд
  • Отримати вміст Цей командлет може взяти файл, обробити його вміст і зробити з ним щось
  • Get-get Знаходить усі командлети, що починаються зі слова get-

Приклад: Створення папки

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

вихід:

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

Типи даних Powershell

Типи даних Powershell
Типи даних Powershell

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

Спеціальна змінна Опис
$Error Масив об’єктів помилок, які відображають останні помилки
$Host Відображення назви поточної програми хостингу
$Профіль Зберігає весь шлях до профілю користувача для оболонки за замовчуванням
$PID Зберігає ідентифікатор процесу
$PSUICulture Він містить назву поточної культури інтерфейсу користувача.
$NULL Містить порожнє або NULL значення.
$False Містить значення FALSE
$True Містить значення TRUE

Сценарії PowerShell

Сценарії Powershell зберігаються у файлі .ps1. За замовчуванням ви не можете запустити сценарій, просто двічі клацнувши файл. Це захищає вашу систему від випадкового пошкодження. Щоб виконати сценарій:

Крок 1: клацніть його правою кнопкою миші та виберіть «Запустити з PowerShell».

Сценарії PowerShell

Крім того, існує політика, яка обмежує виконання сценаріїв. Цю політику можна побачити, виконавши команду Get-ExecutionPolicy.

Ви отримаєте один із таких результатів:

  • Обмежений— Скрипти заборонені. Це налаштування за замовчуванням, тому воно відображатиметься під час першого запуску команди.
  • AllSigned— Ви можете запускати сценарії, підписані надійним розробником. За допомогою цього параметра сценарій перед виконанням запитає підтвердження того, що ви хочете його запустити.
  • RemoteSigned— Ви можете запускати свої або сценарії, підписані перевіреним розробником.
  • Необмежений— Ви можете запускати будь-який скрипт, який хочете запустити

Кроки для зміни політики виконання

Крок 1) Відкрийте підказку PowerShell з підвищеними правами. Клацніть правою кнопкою миші PowerShell і виберіть «Запуск від імені адміністратора»

Сценарії PowerShell

Крок 2) Введіть наступні команди

  1. Get-ExecutionPolicy
  2. Політика виконання набору необмежена
  3. Введіть Y у підказку
  4. Get-ExecutionPolicy

Сценарії PowerShell

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

У блокноті запишіть таку команду

Write-Host "Hello, Guru99!"

Сценарії PowerShell мають розширення ps1. Збережіть файл як FirstScript.ps1

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

У Powershell викличте сценарій за допомогою команди

& "X:\FirstScript.ps1"

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

Що таке PowerShell ISE?

Команда Windows Інтегроване середовище сценаріїв PowerShell (ISE) є редактором за замовчуванням для Windows PowerShell. У цьому ISE ви можете запускати команди, тестувати сценарії та налагоджувати сценарії у віконному середовищі GUI. Ви можете виконувати багаторядкове редагування, фарбування синтаксису, завершення табуляції, вибіркове виконання та багато іншого.

Windows PowerShell ISE також дозволяє запускати команди на панелі консолі. Однак він також підтримує панелі, які ви можете використовувати для одночасного перегляду вихідного коду вашого сценарію та інших інструментів, які ви можете підключити до ISE.

Ви навіть можете відкрити кілька вікон сценаріїв одночасно. Це особливо корисно, коли ви налагоджуєте сценарій, який використовує функції, визначені в інших сценаріях або модулях.

PowerShell ISE

PowerShell ISE

Той самий сценарій, який ми створили в блокноті, можна створити в ISE

  1. Вставте код у редактор
  2. Зберегти сценарій
  3. Використовуйте F5, щоб запустити сценарій
  4. Спостерігайте за виведенням у консоль

PowerShell ISE

Зразок 2:

Наступний код надасть Free Віртуальна пам'ять у вашій машині

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

PowerShell ISE

PowerShell Concepts

У цьому підручнику Powershell для початківців ми дізнаємося про важливі концепції Powershell:

Командлети Cmdlet — це команда створення, написана мовами .net, наприклад VB або C#. Це дозволяє розробникам розширювати набір командлетів, завантажуючи та записуючи оснастки PowerShell.
Функції Функції — це команди, написані мовою PowerShell. Його можна розробити без використання інших IDE Visual Studio і розробники.
Сценарії Сценарії — це текстові файли на диску з розширенням .ps1
додатків Додатки – це існуючі програми Windows.
А якщо Каже командлету не виконувати, а повідомляє вам, що станеться, якщо командлет запуститься.
підтвердити Дайте командлету запит перед виконанням команди.
Verbose Забезпечує вищий рівень деталізації.
Debug Вказує командлету надати інформацію про налагодження.
ErrorAction Наказує командлету виконати певну дію, коли виникає помилка. Дозволені дії продовження, зупинка, мовчки - продовження та запит.
ErrorVariable Він визначає змінну, яка містить інформацію про помилку.
OutVariable Вказує командлету використовувати певну змінну для зберігання вихідної інформації
ЗBuffer Вказує командлету зберігати певну кількість об’єктів перед викликом наступного командлета в конвеєрі.

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

  • Сценарії PowerShell справді потужні та можуть виконувати багато речей за меншу кількість рядків.
  • Змінні оголошуються у формі $
  • Змінні можна використовувати для зберігання результатів команд, об’єктів і значень.
  • «Тип» змінної не потрібно вказувати.

PowerShell проти. Командний рядок

PowerShell Командний рядок
PowerShell глибоко інтегрується з Windows ОС. Він пропонує інтерактивний інтерфейс командного рядка та мову сценаріїв. Командний рядок — це стандартний інтерфейс командного рядка, який надається Microsoft. Це проста програма win32, яка може взаємодіяти та спілкуватися з будь-якими об’єктами win32 у Windows операційна система.
PowerShell використовує так звані командлети. Його можна викликати або в середовищі виконання, або в сценаріях автоматизації. У командному рядку такі функції не пропонуються.
PowerShell розглядає їх як об’єкти. Тож вихідні дані можна передати як вхідні дані іншим командлетам через конвеєр. Командний рядок або навіть оболонка *nix, результат, згенерований командлетом, є не просто потоком тексту, а набором об’єктів.
PowerShell дуже просунутий щодо функцій, можливостей і внутрішнього функціонування. Командний рядок дуже простий.

Програми Powershell

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

Ви точно можете увійти на кожен сервер і перевірити, чи встановлено та запущено цю службу чи ні. Однак це, безсумнівно, вимагає багато людських помилок, оскільки ваш персонал повинен витрачати багато часу на цей непродуктивний процес.

Однак, якщо ви використовуєте PowerShell, ви можете виконати це завдання всього за кілька хвилин. Це тому, що вся операція виконується за допомогою одного сценарію, який збирає інформацію про служби, що працюють на серверах.

Підсумки

  • Windows PowerShell — це об’єктно-орієнтована система автоматизації та мова сценаріїв
  • Powershell пропонує добре інтегрований командний рядок для операційної системи
  • Перша версія PowerShell 1.0 була випущена в 2006 році
  • PowerShell дозволяє запускати сценарії та командлети на віддаленій машині
  • PowerShell попередньо встановлено в усіх останніх версіях Windows
  • Командлет — це легка команда, яка використовується в базовому середовищі Windows PowerShell
  • Get, Start, Out, Stop, Set, New є важливими командами PowerShell
  • Boolean, Byte, Chat, Decimal, Decimal, Long є важливими типами даних PowerShell
  • $Error. $Host, $Profile, $PID, $PSUICulture, $NULL — це деякі спеціальні змінні, які використовуються в PowerShell
  • Команда Windows Інтегроване середовище сценаріїв PowerShell (ISE) є редактором за замовчуванням для PowerShell
  • PowerShell глибоко інтегрується з Windows ОС, тоді як командний рядок є інтерфейсом командного рядка за замовчуванням, який надається Microsoft
  • PowerShell став ідеальним вибором для ІТ-адміністраторів, оскільки він спрощує керування операціями та зусиллями у великих корпоративних мережах