Як автоматично запускати сценарії PowerShell у Windows 10

PowerShell має вбудовані механізми безпеки, що захищають від запуску небажаних скриптів та команд. Наприклад, за замовчуванням виконання скриптів, завантажених з інтернету, неможливе без зміни політики виконання PowerShell. Ще один запобіжний захід – заборона запуску скрипту подвійним кліком миші. Файли PS1 не асоційовані з PowerShell, і єдиний спосіб запустити їх – клікнути правою кнопкою миші та вибрати опцію запуску. Подвійний клік відкриває їх у Блокноті. Хоча це забезпечує безпеку, іноді це незручно, особливо якщо потрібно автоматизувати виконання скрипту PowerShell, наприклад, через заплановане завдання. На щастя, є просте рішення – використання пакетного скрипту для автоматичного запуску скриптів PowerShell.

Пакетний скрипт для запуску PowerShell

Для автоматичного запуску скриптів PowerShell в Windows 10 можна використовувати наступний пакетний скрипт. Кожен скрипт PowerShell потребує окремого пакетного файлу.

Структура скрипту:

@ECHO OFF
PowerShell.exe -Command "Шлях до скрипту"
PAUSE

Замініть “Шлях до скрипту” на точний шлях до вашого скрипту PowerShell. Розгляньмо приклад:

Приклад:

@ECHO OFF
PowerShell.exe -Command "C:\Scripts\MilkBuy-Milk.ps1"
PAUSE

Відкрийте Блокнот, вставте вищевказаний код і збережіть файл з розширенням .bat.

Цей пакетний файл запускає PowerShell, який потім виконує вказаний скрипт. Зверніть увагу, що подвійний клік на скрипті PowerShell не запустить його напряму. Натомість, пакетний файл відкриває вікно командного рядка та чекає на натискання клавіші. Лише після цього запускається скрипт PowerShell. Якщо ви бажаєте, щоб скрипт виконувався без вашої взаємодії, видаліть рядок “PAUSE”. Оновлений скрипт матиме такий вигляд:

@ECHO OFF
PowerShell.exe -Command "Шлях до скрипту"

Планувальник завдань та скрипти PowerShell

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

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