Сценарії в windows powershell 2

Привіт друзі! Як і обіцяв, продовжую розповідь про скриптовой оболонці Windows PowerShell. сьогодні мова піде про сценарії.

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

Сценарії в Windows PowerShell 2.0

Запускаємо на даній машині від імені адміністратора PowerShell

Виконавши команду get-help get-service подивимося інформацію про Командлети get-service

Як бачимо, даний командлет отримує служби на локальному або віддаленому комп'ютері

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

Другий сценарій після його виконання відсортує всі служби на комп'ютері користувача на запущені і зупинені.

Для збереження сценаріїв була заздалегідь створена папка My_scripts

Сценарії писатимемо використовуючи інтегровану в Windows PowerShell середу сценаріїв Windows PowerShell ISE. запускаємо її

Відкриється головне вікно Windows PowerShell ISE

Вводимо команду get-service і виконуємо її натиснувши на Enter

Як бачимо, команда get-service успішно відпрацювала і вивела нас список служб на даному комп'ютері

У правій частині вікна Windows PowerShell ISE пишемо одну за одною дві команди: clear і get-service

Команда clear виконує очистку вікна командного оболонки PowerShell

Команда get-service виводить список служб на локальному або віддаленому комп'ютері

Вибираємо Файл-Зберегти як

Збережемо сценарій в заздалегідь створеної папці My_scripts під ім'ям Service. У рядку Тип файлу вибираємо Скрипти PowerShell

Збережено сценарій Service.ps1

Тепер нам потрібно переглянути їх на комп'ютері на запущені і зупинені

Вводимо команду get-service | sort-object status і натискаємо Enter

Як бачимо, після виконання команди get-service | sort-object status служби на комп'ютері відсортовані на зупинені і запущені

У правій частині вікна Windows PowerShell ISE пишемо дві команди: clear і get-service | sort-object status

Команда get-service | sort-object status виводить список служб на комп'ютері і сортує їх на запущені і зупинені

Вибираємо Файл-Зберегти як

Зберігаємо сценарій в папці My_scripts під ім'ям Service_status

Таким чином ми маємо в папці My_scripts сценарії Service.ps1 і Service_status.ps1

Перейдемо в папку My_scripts ввівши команду cd C: \ My_scripts

Як бачимо, в папці My_scripts знаходяться два сценарії Service.ps1 і Service_status.ps1

Сценарії в Windows PowerShell запускаються в такий спосіб. /Script.ps1. \ Script.ps1, де Script - ім'я сценарію

Вводимо команду ./Service.ps1 і виконуємо сценарій

У нас з'являється помилка "Неможливо завантажити файл C: \ My_scripts \ Service.ps1, так як виконання скриптів заборонено для даної системи"

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

Всього існує чотири політики виконання сценаріїв, а саме:

Restricted - заборонено виконання будь-яких сценаріїв

AllSigned - дозволяється виконання всіх сценаріїв з довіреної цифровим підписом (локално і віддалені)

RemoteSigned - під час визначення всіх локальні, а віддалені повинні володіти довіреної цифровим підписом

Unrestricted - дозволено виконання будь-яких сценаріїв

Для того, щоб визначити яка політика виконання сценаріїв активована в запущеному екземплярі PowerShell, виконаємо команду get-executionpolicy

Як бачимо, в занедбаному екземплярі PowerShell активована політика виконання сценаріїв Restricted, тобто в даному випадку заборонено виконання будь-яких сценаріїв

Для зміни політики виконання сценаріїв потрібно виконати команду set-executionpolicy "......" де замість лапок з точками потрібно вказати одну з чотирьох політику виконання сценаріїв

Змінимо політику виконання сценаріїв на RemoteSigned, ввівши команду set-executionpolicy RemoteSigned

Після виконання команди set-executionpolicy RemoteSigned з'явиться повідомлення про те, що зміна політики виконання сценаріїв може піддати комп'ютер ризику і питається

чи дійсно користувач хоче змінити політику виконання. Вводимо Y і натискаємо Enter

Після зміни політики виконання на RemoteSigned переконаємося, що дана політика встановлена ​​в запущеному екземплярі PowerShell, ввівши команду get-executionpolicy

Як бачимо, політика виконання сценаріїв змінилася на RemoteSigned

Після зміни політики виконання сценаріїв запускаємо наш сценарій Service.ps1, ввівши ./Service.ps1

Як бачимо, сценарій Service.ps1 відпрацював і відобразив нам список служб на даному комп'ютері

Тепер виконаємо сценарій Service_status.ps1, ввівши ./Service_status.ps1

Як бачимо, сценарій Service_status.ps1 відпрацював. Після виконання даного сценарію можна бачити як зупинені служби відображені окремо від запущених

Схожі статті