Привіт друзі! Як і обіцяв, продовжую розповідь про скриптовой оболонці 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 відпрацював. Після виконання даного сценарію можна бачити як зупинені служби відображені окремо від запущених