На рабочей станции могут быть включены политики для запуска только подписанных скриптов:
▶ ▶ ▶ ▶ :
Turn on Script Execution (Enabled) = Allow only signed scripts
Вроде бы всё хорошо и защита включена, но оказывается, что обычный пользователь может подписать скрипт и скрипт запустится, т.к. он уже будет подписан.
Чтобы разрешить только администраторам работать с сертификатами, нужно добавить ещё одну политику:
1. Переходим в оснастку групповых политик:
▶ ▶ ▶ ▶
2. Открываем Certificate Path Validation Settings и переходим на вкладку Trusted Publishers:
3. Включаем Define these policy settings
4. В группе «Trusted publisher management» отмечаем «Allow only administrators to manage Trusted Publishers»:
Теперь если обычный пользователь попытается подписать скрипт:
PS C:\Users\Denis\Documents> Set-AuthenticodeSignature ".\current.ps1" @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
Он получит ошибку:
Set-AuthenticodeSignature : Cannot bind argument to parameter 'Certificate' because it is null. At line:1 char:44 + ... .\current.ps1" @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Set-AuthenticodeSignature], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.SetAuthenti codeSignatureCommand
Зато под админом всё нормально:
PS C:\Users\Denis\Documents> Set-AuthenticodeSignature ".\current.ps1" @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0] Directory: C:\Users\Denis\Documents SignerCertificate Status Path ----------------- ------ ---- FCE07B750609A1806FE2ABA89A95D60013CE7F5E Valid current.ps1
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024
- VSCode: Найти и удалить элементы xml - 29.10.2024