PowerShellで使っていて
このシステムではスクリプトの実行が無効になっているため、ファイルXXXを読み込みことができません
というエラーが発生しました。
原因と解決策を調べてみました。
現象、発生した状況
PowerShellで、Electronのフレームワークを使っています。
1 2 3 4 5 6 7 8 9 |
PS C:¥Users¥xxx¥yyy> electron -g electron : このシステムではスクリプトの実行が無効になっているため、ファイル C:¥Users¥xxx¥AppData¥Roaming¥npm¥elect ron.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkI D=135170) を参照してください。 発生場所 行:1 文字:1 + electron -g + ~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess |
UnauthorizedAccess
アクセス権限がない。
原因、理由
Power Shellで、Get-ExecutionPolicyを実行します。
1 2 |
PS C:¥Users¥xxx¥yyy> Get-ExecutionPolicy Restricted |
PowerShellの「Execution Policy」の設定が「Restricted」(スクリプトを許可しない)になっているため、権限不足により実行できませんでした。
PowerShellの権限 RestrictedとRemoteSignedの違い
PowerShellの権限 RestrictedとRemoteSignedの違いまとめ
Execution Policyの値 | Restricted | RemoteSigned |
---|---|---|
Windows7,8,10,11のデフォルト値 | Windows Serverのデフォルト値 インターネット上から ダウンロードしたスクリプトの 実行の場合、電子署名が必要 |
|
スクリプト実行 | 実行不可× .ps1、.ps1xml、.psm1 |
実行可能〇 |
コマンド実行 | 実行可能〇 | 実行可能〇 |
PowerShellの権限がRestrictedなので、ps1の拡張子のスクリプトは実行できません。
解決策、対処方法
この問題の解決策、対処方法はPowerShellの権限をRemoteSignedにすることです。
具体的には、まず、PowerShellを管理者として実行します。
その後、PowerShellで
set-executionpolicy remotesigned
といこうコマンドを実行します。
1 2 3 4 5 6 7 |
PS C:¥Users¥xxx¥yyy> set-executionpolicy remotesigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): a |
このあと、先ほど権限不足でエラーとなっているスクリプトを実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
PS C:¥Users¥xxx¥yyy> electron -g Electron 21.3.0 - Build cross platform desktop apps with JavaScript, HTML, and CSS Usage: electron [options] [path] A path to an Electron app may be specified. It must be one of the following: - index.js file. - Folder containing a package.json file. - Folder containing an index.js file. - .html/.htm file. - http://, https://, or file:// URL. Options: -i, --interactive Open a REPL to the main process. -r, --require Module to preload (option can be repeated). -v, --version Print the version. -a, --abi Print the Node ABI version. |
今度は実行出来ました。
コメント