Для защиты от запуска 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 :)
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024
- VSCode: Найти и удалить элементы xml - 29.10.2024
- WordPress: Ошибка в плагине WpDiscuz - 08.10.2024