2017-08-23 12 views
0

私は独自のローカルカスタム証明書を作成し、PowerShellスクリプトを使用して署名しました。実行ポリシーが「Allsigned」に設定されている別のWindowsシステムで自己署名されたps1スクリプトを実行すると、バッチファイル内でpowershell.exeを使用して行を実行すると以下のプロンプトが表示されます。powershell.exeに自動応答する方法信頼できない発行元のプロンプト

powershell .EXE -nologo -file "C:\ Users \ユーザー管理\デスクトップ\テスト\のtest.ps1"

Do you want to run software from this untrusted publisher? 

File C:\Users\admin\Desktop\test\test.ps1 is published by CN=get_test PowerShell 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"): 

それは問題外ですので、私はたpowershell.exeのモードを-bypass実行することはできません。だから私は自動でこのプロンプトにRで応答する方法を見つけようとしています。プロンプトがWindowsのcmd行ではなく、powershellの中にあるかのように見えます。バッチファイル内でRをエコーし​​ようとしました。

echo R|powershell.exe -nologo -file "C:\Users\admin\Desktop\test\test.ps1" 

しかし、それでも動作しませんでした。私はpowershell.exeオプションを見て、私が環境で行うことができないバイパスモードを設定する以外のパラメータで応答する方法を見ていない。

powershell.exeからこのプロンプトへの応答をコードする方法はありますか?または、バイパスモードで実行できる場合を除き、それは可能ではありませんか?おかげ

+1

他のコンピュータがあなたのコードを信頼できるように適切な証明書をインストールします。 "*私はできない*設定 - バイパスモード*" - それを行うことができるようにします。管理ポリシーの場合は、「バイパスパラメータを使用しないでくださいが、回避策を講じることができれば、コード署名を迂回しないでください」ということはほぼ確実です。 – TessellatingHeckler

答えて

1

は、ターゲットコンピュータ上で次のようにスクリプトを実行してみてください:

powershell.exe -ExecutionPolicy bypass -c " . 'path_to_script.ps1';" 

あなたはまだ実行できない場合は、ジョンがコメントとして、そして、あなたの組織は、PowerShellのスクリプトの実行をブロックする場所に厳格なポリシーを持っています。

  1. (1.3.6.1.5.5 codeSigningと呼ばれる拡張キー使用法で証明書を要求する:

    グループポリシーの例は、そのような場合には

    http://www.techrepublic.com/blog/the-enterprise-cloud/set-the-powershell-execution-policy-via-group-policy/に記述されている、あなたが必要とするあなたのコードに署名する必要があります。ターゲット・マシンに信頼された発行元に発行された証明書のインポート7.3.3)

あなたはreadinで開始することができます

g https://www.darkoperator.com/blog/2013/3/5/powershell-basics-execution-policy-part-1.html

+0

私はpowershellを使用して作成した証明書をPowerShell経由で自己署名しました。洞察のおかげでありがとう。非常に役立ちます –

関連する問題