Проблемы с созданием сертификатов подписи кодов с помощью Powershell в Windows 7 - PullRequest
1 голос
/ 06 ноября 2011

После написания сценариев в Powershell с небольшими ограничениями (или в течение непродолжительного периода времени) я решил собраться и начать делать все Set-ExecutionPolicy AllSigned. Пройдя по старому посту Гансельмана , я не смог даже подписать свой профиль.ps1.

Быстрый тест показал, что: Get-ChildItem cert: \ CurrentUser \ My –codesign всегда возвращает ноль. Я открыл certmgr и вижу все сертификаты, но я не уверен, почему я не могу подписать что-либо локальное. Запуск этого:

Set-AuthenticodeSignature "C:\users\[MY USER ACCOUNT]\Documents\WindowsPowerShell\profile.ps1" @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]

Всегда будет возвращаться:

Set-AuthenticodeSignature: невозможно связать аргумент с параметром «Сертификат», потому что это ноль

Я нахожусь на Windows 7 Ultimate под учетной записью администратора, и я выполнил все в PS или CMD в качестве администратора. Некоторое время назад я просто пробирался по PowerShell, но надеюсь, что здесь не пропущено что-то очень простое.

1 Ответ

1 голос
/ 06 ноября 2011

Я думаю, я понял это, на самом деле. Я не уверен, что это лучший метод в этом случае или нет, но я устал бить головой об стол.

1.) Итак, я посмотрел эту статью поддержки MS и заметил, что пользователь SYSTEM должен иметь полный контроль над ... \ Crypto \ RSA \ MachineKeys dir, а мой - нет есть СИСТЕМА в списке. Таким образом, я изменил разрешения там (это также совпало бы с SO Question # 11887 ).

2.) Удалил сертификаты, которые я создал ранее, и заново создал их.

3.) Открыл certmgr, нашел сертификат, пошел в реквизит и поставил конкретную цель.

Теперь Get-ChildItem cert:\CurrentUser\My -codesigning возвращает отпечаток, и я могу подписывать сценарии.

Я не уверен, почему моя установка была такой или необычной, но я никогда раньше не затрагивал каталог MachineKey. Но, похоже, сейчас работает.

...