Для защиты от запуска PowerShell скриптов в системе можно включить ограничительную политику. Я себе установил режим AllSigned — запуск только скриптов с цифровой подписью, и все время на нее и уповал до тех пор, пока не нашел способ запустить выполнение .ps1 скрипта, не имеющего цифровой подписи. Для этого нужно было просто дописать ключ -ExecutionPolicy Bypass:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -command "& 'C:\Program Files (x86)\MyScripts\TestScript.ps1'"
Данный параметр перезаписывает локальные настройки реестра на время выполнения скрипта или команды!
И есть еще около 14 способов!!! обойти подобное ограничение!
Небольшая защита от этого все же есть.
Для тех, у кого есть доступ к глобальным политикам, можно включить политику и тогда скрипты можно будет запустить интерактивно только из консоли PowerShell — ну хоть что-то:
Computer Configuration -> Administrative Templates -> Windows Components -> Windows PowerShell -> Turn on Script Execution
Для этой политики ставим значение Enabled и в качестве опции выбираем Allow only signed scripts
При этом другие параметры -Command и —EncodedCommand игнорируют эту политику! Поэтому для параноиков лучше вообще запретить выполнение PowerShell :)
- C#: Добавить поддержку перезапуска приложения - 21.02.2025
- EVE-Online: Отобразить информацию о соединении и fps - 20.02.2025
- WPF: Отображение прогресса с помощью async/await - 13.02.2025