По умолчанию в десктопных версиях Windows политика Execution Policy блокирует выполнение PowerShell скриптов, чтобы предотвратить запуск потенциально опасного кода. Для создания безопасной среды администраторы могут подписывать все скрипты с помощью сертификатов.
Шаги для подписания PowerShell скриптов
1️⃣ Получение сертификата: Чтобы подписать скрипты, требуется сертификат типа Code Signing. Его можно, например, сгенерировать самостоятельно (самоподписанный сертификат).
2️⃣ Подпись PowerShell скрипта: Используйте командлет Set-AuthenticodeSignature, чтобы подписать скрипт (например, script.ps1) с помощью сертификата, хранящегося в локальном хранилище:
$file = "C:\Scripts\script.ps1"
$cert = Get-ChildItem Cert:\CurrentUser\My | Where-Object { $_.Subject -like "*CodeSigning*" }
Set-AuthenticodeSignature -FilePath $file -Certificate $cert
3️⃣ Добавление доверия сертификату: Чтобы компьютеры доверяли подписанным скриптам:
Убедитесь, что открытый ключ сертификата добавлен в список доверенных корневых сертификатов (Trusted Root CA) или в раздел Trusted Publishers на клиентских устройствах. Для централизованного развертывания можно использовать GPO.
4️⃣ Изменение политики выполнения: Настройте PowerShell для разрешения запуска только подписанных скриптов:
Set-ExecutionPolicy AllSigned -Force
▪️ Как это работает?
После выполнения всех шагов компьютеры смогут запускать только те скрипты, которые подписаны доверенными сертификатами.
Если содержимое скрипта будет изменено, подпись станет недействительной, и политика заблокирует его запуск.
#windows #security
🧑💻 NetworkAdmin