Як запустити скрипт powershell, павленко евгений

Дія політики виконання поширюється на всіх користувачів поточного комп'ютера. Вона зберігається в розділі реєстру HKEY_LOCAL_MACHINE.

Тип політики вибирати вам, особисто я раджу AllSigned. Включити політику можна 2 двома способами

1) Командою PowerShell - Set-ExecutionPolicy <имя_политики>

2) Правило в Груповий політки. Знайти її можна тут Computer Configuration-> Policies-> Administrative templates-> Windows Components

Створення Сертифіката та підпис скрипта.

Для створення власного сертифіката підпису потрібно використовувати інструмент для створення сертифікатів (MakeCert.exe). Етотінструмент входить до складу комплектів Microsoft .NET Framework SDK версії 1.1 і Microsoft Windows SDK.

makecert -n «CN = PowerShell Local Certificate Root» -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer -ss Root -sr localMachine
makecert -pe -n «CN = PowerShell User» -ss MY -a sha1 -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer

Далі необхідно перевірити встановився сертифікат. Для цього виконаємо команду в PowerShell

get-childitem cert: CurrentUsermy -codesigning

Або створити за допомогою центру сертифікатів.

Щоб підписати скрипт в PowerShell необхідно виконати.

$ Cert = @ (Get-ChildItem cert: CurrentUserMy -codesigning) [0]
Set-AuthenticodeSignature add-signature.ps1 $ cert

Зверну увагу на проблему, яка встречаеться. Коли виконуєте підпис скрипта, отримуєте UnknownError. Зазвичай це проблема в тому що кодування файлу не підходить, щоб підписати його. Рішення просте, створіть скрипт в блокноті його, і подпішите. Для опису статусу виконуємо

(Set-AuthenticodeSignature $ Cert) .statusmessage

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