署名されたPowerShell スクリプト ファイル(.ps1)を実行すると確認プロンプトが表示されます。
誤って、[常に実行しない]を選択したところ、スクリプトが実行出来なくなりました。
対処法をメモしておきます。
現象
この信頼されていない発行元からのソフトウェアを実行しますか?ファイル xxxx.ps1 の発行元は CN=xxxx であり、このシステムで信頼されていません。信頼された発行元からのスクリプトのみを実行してください。
- [V] 常に実行しない(V)
- [D] 実行しない(D)
- [R] 一度だけ実行する(R)
- [A] 常に実行する(A)
- [?] ヘルプ
- (既定値は “D”):
証明書は、証明機関によって失効=使用できない状態になります。
Technetの「abount_Signing」を見ると
と書かれています。If you trust the publisher, select "Run once" or "Always run." If you do not trust the publisher, select either "Never run" or "Do not run." If you select "Never run" or "Always run," Windows PowerShell will not prompt you again for this publisher.
対処法
今回作成したコード署名 証明書はローカルで作成しており、証明書の状態を確認すると[失効状態]になっていた。
そのため下記に示す対処法で対応する事で再度スクリプトを実行できるようになります。
そのため下記に示す対処法で対応する事で再度スクリプトを実行できるようになります。
- [インターネット オプション]→[コンテンツ]→[証明書]をクリック
- 該当の証明書を削除
- Set-AuthenticodeSignature コマンドレットで使用した証明書を削除
- 自己署名証明書を作成
- スクリプト ファイルを署名しなおす
尚、AD CSで作成したコード署名の場合はまだ未確認です。
ちょっとした操作ミスでスクリプト ファイルが実行できなくなるので注意したいところです。