Підручник Powershell для початківців: навчіться створювати сценарії Powershell
Що таке 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. Виберіть і натисніть
Крок 2) Відкривається вікно Power Shell
Командлет PowerShell
Командлет, який також називається Command let, є легкою командою, яка використовується в середовищі Windows PowerShell. PowerShell викликає ці командлети в командному рядку. Ви можете створювати та викликати команди командлетів за допомогою PowerShell APIS.
Cmdlet проти команди
Командлети відрізняються від команд в інших середовищах командної оболонки наступним чином?
- Командлети є . NET Framework об'єкти класу Його не можна виконувати окремо
- Командлети можуть складатися лише з десятка рядків коду
- Синтаксичний аналіз, форматування виводу та представлення помилок не обробляються командлетами
- Командлети обробляють об’єкти. Таким чином, текстовий потік і об’єкти не можуть бути передані як вихід для конвеєрної обробки
- Командлети базуються на записах, тому вони обробляють один об’єкт за раз
Більшість функціональних можливостей PowerShell походить від командлета, який завжди має формат дієслова-іменника, а не множини. Крім того, командлет повертає об’єкти, а не текст. Командлет — це набір команд, який складається з кількох рядків і зберігається в текстовому файлі з розширенням .ps1.
Командлет завжди складається з дієслова та іменника, розділених дефісом. Ось деякі з дієслів, які використовуються для вивчення PowerShell:
- отримати — Щоб отримати щось
- Start — Керувати чимось
- З — Щось вивести
- Стоп — Зупинити те, що біжить
- Установка — Щось визначати
- Нові — Щось створити
PowerShell команд
Нижче наведено список важливих команд PowerShell:
Отримати допомогу: Довідка щодо команд і тем PowerShell
Приклад: відображення довідкової інформації про команду Format-Table
Get-Help Format-Table
Get-Command: Отримайте інформацію про все, що можна викликати
Приклад сценарію Powershell: для створення списку командлетів, функцій, встановлених на вашій машині
Get-Command
Get-Service: Знаходить усі командлети зі словом «служба».
Приклад: отримати всі служби, які починаються з «vm»
Get-Service "vm*"
Get- Member: Покажіть, що можна зробити з предметом
Приклад: отримати членів процесів vm.
Get-Service "vm*" | Get-Member
Інші команди:
- Отримати модуль Показує пакети команд
- Отримати вміст Цей командлет може взяти файл, обробити його вміст і зробити з ним щось
- Get-get Знаходить усі командлети, що починаються зі слова get-
Приклад: Створення папки
New-Item -Path 'X:\Guru99' -ItemType Directory
вихід:
Типи даних Powershell
Спеціальні змінні
Спеціальна змінна | Опис |
---|---|
$Error | Масив об’єктів помилок, які відображають останні помилки |
$Host | Відображення назви поточної програми хостингу |
$Профіль | Зберігає весь шлях до профілю користувача для оболонки за замовчуванням |
$PID | Зберігає ідентифікатор процесу |
$PSUICulture | Він містить назву поточної культури інтерфейсу користувача. |
$NULL | Містить порожнє або NULL значення. |
$False | Містить значення FALSE |
$True | Містить значення TRUE |
Сценарії PowerShell
Сценарії Powershell зберігаються у файлі .ps1. За замовчуванням ви не можете запустити сценарій, просто двічі клацнувши файл. Це захищає вашу систему від випадкового пошкодження. Щоб виконати сценарій:
Крок 1: клацніть його правою кнопкою миші та виберіть «Запустити з PowerShell».
Крім того, існує політика, яка обмежує виконання сценаріїв. Цю політику можна побачити, виконавши команду Get-ExecutionPolicy.
Ви отримаєте один із таких результатів:
- Обмежений— Скрипти заборонені. Це налаштування за замовчуванням, тому воно відображатиметься під час першого запуску команди.
- AllSigned— Ви можете запускати сценарії, підписані надійним розробником. За допомогою цього параметра сценарій перед виконанням запитає підтвердження того, що ви хочете його запустити.
- RemoteSigned— Ви можете запускати свої або сценарії, підписані перевіреним розробником.
- Необмежений— Ви можете запускати будь-який скрипт, який хочете запустити
Кроки для зміни політики виконання
Крок 1) Відкрийте підказку PowerShell з підвищеними правами. Клацніть правою кнопкою миші PowerShell і виберіть «Запуск від імені адміністратора»
Крок 2) Введіть наступні команди
- Get-ExecutionPolicy
- Політика виконання набору необмежена
- Введіть Y у підказку
- Get-ExecutionPolicy
Перший сценарій PowerShell
У блокноті запишіть таку команду
Write-Host "Hello, Guru99!"
Сценарії PowerShell мають розширення ps1. Збережіть файл як FirstScript.ps1
У Powershell викличте сценарій за допомогою команди
& "X:\FirstScript.ps1"
Що таке PowerShell ISE?
Команда Windows Інтегроване середовище сценаріїв PowerShell (ISE) є редактором за замовчуванням для Windows PowerShell. У цьому ISE ви можете запускати команди, тестувати сценарії та налагоджувати сценарії у віконному середовищі GUI. Ви можете виконувати багаторядкове редагування, фарбування синтаксису, завершення табуляції, вибіркове виконання та багато іншого.
Windows PowerShell ISE також дозволяє запускати команди на панелі консолі. Однак він також підтримує панелі, які ви можете використовувати для одночасного перегляду вихідного коду вашого сценарію та інших інструментів, які ви можете підключити до ISE.
Ви навіть можете відкрити кілька вікон сценаріїв одночасно. Це особливо корисно, коли ви налагоджуєте сценарій, який використовує функції, визначені в інших сценаріях або модулях.
Той самий сценарій, який ми створили в блокноті, можна створити в ISE
- Вставте код у редактор
- Зберегти сценарій
- Використовуйте F5, щоб запустити сценарій
- Спостерігайте за виведенням у консоль
Зразок 2:
Наступний код надасть Free Віртуальна пам'ять у вашій машині
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
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 став ідеальним вибором для ІТ-адміністраторів, оскільки він спрощує керування операціями та зусиллями у великих корпоративних мережах