Налаштування Windows заборонені запуском сценаріїв PowerShell. Це необхідно для запобігання запуску шкідливого коду на PowerShell. Налаштування сценаріїв старту PowerShell визначаються в політиці виконання. У цій статті ми розглянемо доступну політику сценаріїв PS, як змінити політику виконання та налаштувати PowerShell Powerchell Popershell Powers у доменах.
Зміст:
- Сценарії PowerShell заборонені для цієї системи
- Як дозволити сценарії PowerShell за допомогою політики виконання?
- Встановлення політики виконання PowerShell за допомогою групових політиків
- Шляхи обхід політики виконання PowerShell
Сценарії PowerShell заборонені для цієї системи
При спробі виконати сценарій PowerShell (файл з розширенням PS1) на чистій Windows 10, з’являється помилка:
Файл C: \ ps \.PS1 не може бути завантажений, оскільки запуск сценаріїв вимкнено в цій системі. Для отримання додаткової інформації див. About_execution_pilices за адресою https:/go.Microsoft.Com/fwlink/?Linkid = 135170. + CateyInfo: SecurityUroror: (:) [], PsSecurityException + FullyQualifiedERORID: Несанкціоновані аксеси
Не вдається завантажити файл.PS1, оскільки продуктивність сценаріїв заборонена для цієї системи.
Поточне значення Політики сценаріїв PowerShell на комп’ютері може бути отримана командою:
Get-ExecutionPolicy
Доступні такі значення політики виконання PowerShell:
- Обмежений - Запустити сценарії PowerShell заборонено виконувати лише інтерактивні команди в консолі;
- Всебічний - Дозволено виконувати лише підписані сценарії PS з цифровим підписом від надійного видавця (ви можете підписати сценарій за допомогою самозайнятого сертифіката та додати його до довіреного). Починаючи з безпринципних сценаріїв, з’являється попередження:
Ви хочете запустити програмне забезпечення з цього недовіреного видавця? Файл .PS1 опубліковано CN = Test1 і не довіряє вашій системі. Запустіть лише сценарії від надійних видавців
- Пустотливий - Ви можете запускати місцеві сценарії PowerShell без обмежень. Ви можете запустити видалені файли PS за допомогою цифрового підпису (ви не можете запустити файли PS1, завантажені з Інтернету, запущеного з мережевої папки на треку UNC тощо.D.);
- Необмежений - Дозволено запускати всі сценарії PowerShell; Коли запущено третій партії сценарії PowerShell, може з’явитися попередження з підтвердженням запуску, див. внизу.
- Обхід - Запуск будь -яких файлів PS (попередження не відображається) дозволено - ця політика зазвичай використовується для автоматичного запуску сценаріїв PS без усунення будь -яких сповіщень (наприклад, при запуску через GPO, SCCM, планувальник тощо.D.) і не рекомендується для постійного використання;
- За замовчуванням - скидання сценаріїв для стандарту; У Windows 10, політика політики PowerShell обмежила PowerShell та віддалений Windows Server 2016.
- Невизначений - не задано. До сервера застосовується обмежена політика щодо настільної ОС та віддаленої оцінки, застосовується до сервера.
Як дозволити сценарії PowerShell за допомогою політики виконання?
Щоб змінити поточну цінність Політики запуску сценарію PowerShell, командир використовується Set-ExecutionPolicy.
Наприклад, ми дозволимо запустити місцеві сценарії:
Set-ExecutionPolice reforygended
Підтвердити зміну політики сценаріїв PS1, натиснувши Y або a.
Щоб запит не з’явився, ви можете використовувати параметр Примушувати.
Встановити -executionPolicy RemoteSigned -force
Якщо ви встановите цінність політики політики виконання PowerShell у необмежених, то при запуску віддалених сценаріїв з мережевих каталогів за допомогою треків UNC, завантажених з Інтернету, все ще з’явиться попередження:
Попередження про безпеку Запустіть лише сценарії, яким ви довіряєте. Хоча сценарії з Інтернету, цей сценарій може потенційно завдати шкоди вашому комп’ютеру. Якщо ви довіряєте цьому сценарію, використовуйте командлет з розблокуванням, щоб дозволити сценарію працювати без цього попереджувального повідомлення. Ви хочете бігати? [D] не запускайте [r] запустіть один раз [s] залежно від [?] Довідка (за замовчуванням - "D")
Ви також повинні розрізняти різні сфери дії Політики сценаріїв PowerShell (Сфери):
- Машиннаполітика - Дії для всіх користувачів комп'ютера, налаштовані через GPO;
- Користувацька поліція - Дії на користувачів комп'ютера, також налаштовані через GPO;
- Обробка - Налаштування виконання є дійсними лише для поточного сеансу PowerShell.exe (скинути при закритті процесу);
- Поточний користувач - Політика ExecutionPolicy застосовується лише до поточного користувача (параметр від відділення реєстру Hkey_current_user);
- Локал - Політика для всіх користувачів комп'ютера (параметр від відділення реєстру HKEY_LOCAL_MACHINE);
Обсяг політики може бути визначений за допомогою параметра Обсяг Команда Set-ExecutionPolicy. Наприклад:
Set -ExecutionPolicy -Cope Proces
Давайте перевіримо поточні налаштування ExectutionPolicy для всіх областей:
Get -ExecutionPolity -List
Виконання сфери застосування --------------------------------------------- Визначена користувачем Політика невизначена Процесний струм, не визначений не визначений віддаленим
Значення політики виконання, яку ви встановите за допомогою команди Set-ExecutionPolicol для областей поточного USER та LocalMachine, зберігається в реєстрі. Наприклад, виконайте команду:
Set -ExecutionPolici -Scepe localMachine -exectionPolcy обмежений -force
Відкрийте hkey_local_machine \ програмне забезпечення \ microsoft \ powershell \ 1 \ shellids \ microsoft register.PowerShell і перевірте значення параметра Reg_SZ ExtutionPolicy. Це змінилося на обмежені (допустимі значення обмежених, всеосяжних, віддалених, обхідних, необмежених та невизначених).
Подібні налаштування для області CurrentUser розташовані в розділі реєстру користувача HKEY_CURRENT_USER \ Software \ Microsoft \ PowerShell \ 1 \ Shellids \ Microsoft.PowerShell.
Т.Е. Ви можете розповсюдити необхідні налаштування для політики виконання сценарію через реєстр, використовуючи налаштування групової політики.Зауважте, що найчастіше корпоративне середовище використовує ExectutionPolicy зі значенням Всебічний На рівні локальних качок. Це забезпечує максимальний баланс між безпекою та зручністю. Для особистого користування на комп’ютері ви можете використовувати віддалену програму. Що ж, під байпасом краще використовувати політику лише для запуску окремих завдань (наприклад, запустити сценарії за допомогою GPO або завдань планувальника).
Встановлення політики виконання PowerShell за допомогою групових політиків
Ви можете налаштувати політику PowerShel на серверах або доменних комп'ютерах, використовуючи групові політики.
- Використання редактора домену GPO (GPMC.MSC) створити новий GPO (або редагувати) існуючі та призначити його на OU з комп’ютерами, до яких потрібно застосувати політику запуску сценарію PowerShell;
- У редакторі політики перейдіть до розділу конфігурації комп'ютера -> Політика -> Адміністраційні шаблони -> Компоненти Windows -> Windows PowerShell та знайдіть політику Увімкніть виконання сценарію (Включити сценарії); Подібна політика проводиться в розділі gpo розділу користувача - конфігурація користувача, але комп'ютерна політика має пріоритет.
- Для політики доступні три значення:
- Дозволити лише підписані сценарії (Вирішити лише підписані сценарії) - відповідає всім політиці;
- Дозвольте локальними сценаріями та підписаними сценаріями (Дозволити місцеві та віддалені підписані сценарії) - відповідає віддаленій політиці PS;
- Дозволити всі сценарії (Вирішіть усі сценарії) - Університетська політика.
- Виберіть необхідну цінність політики, збережіть GPO та оновіть політику на комп’ютері.
- Перевірте, що для регіону Machinepolicy тепер є нові налаштування виконання.
Після налаштування політики виконання через GPO ви не зможете змінити налаштування політики сценарію вручну. Намагаючись змінити налаштування політики виконання на комп’ютері, що застосовується до такого GPO, з’явиться помилка:
Set-ExecutionPolicy: Windows PowerShell успішно оновив вашу політику виконання, але налаштування iseridden за більш конкретною областю сфери застосування. Через переоцінку ваша оболонка збереже свою поточну ефективну політику виконання віддаленої. Введіть "Get -ExecutionPolist", щоб переглянути налаштування політики виконання.
Шляхи обхід політики виконання PowerShell
Є кілька хитрощів, які можуть допомогти вам, коли вам потрібно запустити сценарій PowerShell на комп’ютері, не змінюючи налаштувань політики виконання. Наприклад, я хочу запустити простий сценарій PS1, який вважає, що він був запущений з правами адміністратора.
Ви можете використовувати Get-Content, щоб отримати вміст сценарію та перенаправити його на стандартний вхід консолі PS.
Get-content c: \ ps \ check_process_elevation.PS1 | PowerShell.Exe -noprofile -
Або ви можете розпочати новий процес PowerShell.Exe з обходу:
PowerShell.Exe -noprofile -exechecationPolicy Bypass -file c: \ ps \ check_process_elevation.PS1