Как доверять сертификату в Windows Powershell - PullRequest
5 голосов
/ 11 января 2012

Я использую Windows 7 и хочу запустить подписанные сценарии с Powershell, security-settings Powershell установлен на "all-signed", а мои сценарии подписаны valid certificate от моей компании.Я также добавил .pfx-file в свое локальное хранилище сертификатов (right-clicked the pfx-file and installed).

Однако, когда я запускаю подписанный скрипт, я получаю сообщение:

"Do you want to run software from this untrusted publisher?
File Z:\Powershell Signed Scripts\signed.ps1 is published by CN=[MyCompanyName] and is not trusted on your system. Only run scripts from
 trusted publishers.
[V] Never run  [D] Do not run  [R] Run once  [A] Always run  [?] Help
(default is "D"):"

Поскольку яЯ хочу автоматически вызывать эти сценарии в своих системах. Я хотел бы добавить свой импортированный сертификат в список доверенных в моей системе, чтобы я больше не получал сообщения при первом запуске подписанного сценария.Как я могу сделать свой сертификат доверенным?

Ответы [ 2 ]

7 голосов
/ 08 января 2014

Как доверять сертификату в Windows Powershell

Действительно, вы можете сделать это без каких-либо mmc:)

Сначала проверьте местоположение вашего личного сертификата, например, "Power":

Get-ChildItem -Recurse cert:\CurrentUser\ |where {$_ -Match "Power"} | Select PSParentPath,Subject,Issuer,HasPrivateKey |ft -AutoSize

(Этот должен быть пустым:)

gci cert:\CurrentUser\TrustedPublisher

Создайте команду с путем к вашему сертификату:

$cert = Get-ChildItem    Certificate::CurrentUser\My\ABLALAH

Следующая работа над хранилищем сертификатов ( Здесь я работаю с двумя хранилищами сертификатов: пользователь и компьютер )

$store = New-Object 
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store "TrustedPublisher","LocalMachine"
$store.Open("ReadWrite")
$store.Add($cert)
$store.Close()

Проверьте, вы должны найти свой сертификат:

ls cert:\CurrentUser\TrustedPublisher
2 голосов
/ 11 января 2012

Похоже, вам нужно убедиться, что скрипт подписан правильно и что в правильном хранилище сертификатов установлен правильный сертификат.

Используйте командлет Get-AuthenticodeSignature для получения информации о подписанном сценарии.

Также просмотрите Руководство Скотта для подписания сертификатов.

...