🐟
[Angular][環境構築][エラー] PowerShellでngコマンドが使えない
やりたいこと
PowerShellでngコマンドを使いたい
ng --version
エラー内容
ng --version
ng : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\〇〇\AppData\Roaming\npm\ng.p
s1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?
LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ ng --version
+ ~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
原因
実行ポリシーによってスクリプトの実行がブロックされているためです。
現在の設定を確認します。
Get-ExecutionPolicy
Restricted
Restricted
になっていました。
Restricted
- 個々のコマンドは許可されますが、スクリプトは許可されません。
- 書式設定と構成ファイル (
.ps1xml
)、モジュール スクリプト ファイル (.psm1
)、PowerShell プロファイル (.ps1
) など、すべてのスクリプト ファイルの実行を防止します。
解決策
以下のコマンドを PowerShell に入力して、実行ポリシーを緩和します。
「現在のユーザーだけ」に対して「RemoteSigned」に変更するものです。
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
RemoteSigned
- Windows コンピューターの既定の実行ポリシー。
- スクリプトは実行できます。
- メールやインスタント メッセージ プログラムを含むインターネットからダウンロードされるスクリプトや構成ファイルには、信頼できる発行者からのデジタル署名が必要です。
- インターネットからダウンロードされたものではなく、ローカル コンピューターに書かれたスクリプトにはデジタル署名は必要ありません。
Unblock-File
コマンドレットを使用するなどしてスクリプトのブロックが解除された場合、インターネットからダウンロードされた符号なしのスクリプトを実行します。- インターネット以外からの符号なしのスクリプトや、悪意のある可能性のある符号のあるスクリプトを実行するリスク。
これによりPowerShellでもngコマンドが使えるようになりました。
Discussion