7

を使用していてWindows 7、から署名されたスクリプトを実行したいのですがPowershellsecurity-settingsPowershellのはに設定されて"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"):"

システムでこれらのスクリプトを自動的に呼び出したいので、インポートした証明書をシステムの信頼できるリストに追加して、署名されたスクリプトを初めて実行したときにメッセージが表示されないようにします。証明書を信頼できるものにするにはどうすればよいですか?

4

2 に答える 2

8

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

次の証明書ストアの作業(ここでは、ユーザーとコンピューターの 2 つの証明書ストアに取り組みます)

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

確認してください。証明書が見つかるはずです。

ls cert:\CurrentUser\TrustedPublisher
于 2014-01-08T16:43:43.047 に答える
2

スクリプトが正しく署名されていること、および正しい証明書ストアに正しい証明書がインストールされていることを確認する必要があるようです。

コマンドレットを使用しGet-AuthenticodeSignatureて、署名されたスクリプトに関する情報を取得します。

また、証明書に署名するためのスコットのガイドを確認してください。

于 2012-01-11T14:26:00.937 に答える