C#からPowerShellを実行しようとした時にエラーが発生したので、対処法のメモ…
現象
C#からhoge.ps1を実行しようとしたところ、下記のエラーが発生しました。
ハンドルされていない例外: System.Management.Automation.PSSecurityException: このシステムではスクリプトの実行が無効になっているため、ファイル Verb-Noun.ps1 を読み込むことができません。
実行前に設定した内容
下記のコマンドを管理者権限で実行したPowerShellで入力し、実行ポリシーを「RemoteSigned」に変更していた。
Set-ExecutionPolicy RemoteSigned
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
Get-ExecutionPolicy
RemoteSigned
解決方法
これではまだ準備が足りないようで-Scopeオプションを追加して
実行する必要があるらしい…
Get-ExecutionPolicy -Scope CurrentUser
Undefined
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
Get-ExecutionPolicy -Scope CurrentUser
RemoteSigned
色々とわからんことばかり…
