【c#】C#からPowerShell実行時のエラー対処方法
状況
C#からxxxxx.ps1を実行しようとしたところ、次のエラーが発生。
ハンドルされていない例外: System.Management.Automation.PSSecurityException: このシステムではスクリプトの実行が無効になっているため、ファイル test.ps1 を読み込むことができません。
サイトを検索するとpowershellの権限の問題とのことから確認を行い変更した。
原因
powershellの権限が RemoteSigned である必要がある。
また、権限が RemoteSigned であってもエラーとなることが判明した。
powershellの権限
実行ポリシー 署名有 署名無local 署名無非local
Restricted x x x
全てのスクリプトの実行を制限 (初期設定)
AllSigned 〇 x x
署名のあるスクリプトのみ実行可
RemoteSigned 〇 〇 x
ローカル上のスクリプトと非ローカル上の署名のあるスクリプトのみ実行可
Unrestricted 〇 〇 △
すべてのスクリプトが実行可
非ローカル上のスクリプトは実行時に許可が必要
Bypass 〇 〇 〇
すべてのスクリプトが実行可能
作業
powershellを起動して権限設定を変更します。
1.powershellのアイコンを右クリックして管理者権限で実行(起動)する
2.Get-ExecutionPolicy と入力して現在の権限(有効な実行ポリシー)を確認
3.次のコマンドを入力して権限を変更する。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
4.-scope がないと RemoteSigned であってもエラーとなるのがポイントです。
参考url
この記事が気に入ったらサポートをしてみませんか?