VSCodeでGeminiCLIを使ってみたくて、コマンドをVSCodeのターミナルから実行するとこんなエラーがでてきた。
- 「このシステムではスクリプトの実行が無効になっている...」
- 「CategoryInfo: セキュリティ エラー: PSSecurityException」
PS C:\xxxxxx\xxxxxxx> npm install -g @google/gemini-cli
npm : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\nodejs\npm.ps1 を読み込むことができません。詳細については、「about_Executio
n_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ npm install -g @google/gemini-cli
+ ~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
npm以外にも前からVSCodeのターミナルから実行すると、スクリプトの実行が無効がうんたらかんたらと怒られてからのコマンドプロンプトで実行みたいなことあったけど、
npmでコマンドを実行することが多くなってきたんで、このエラーを解消したい!
解決方法:PowerShellの設定を変えるだけ
解決方法はめちゃくちゃ簡単。
PowerShellに「ローカルのスクリプトは動かしてもええで」って教えるだけでええみたい。
- 「管理者」としてPowerShellを開く
- VSCodeの中じゃなく、Windowsのスタートメニューから「PowerShell」って検索します。
- 検索結果の「Windows PowerShell」を右クリックして、「管理者として実行」を選びます。
- 実行ポリシーを変更
管理者で開いたPowerShellに、下のコマンドをコピペしてEnterキーを押す。
「実行ポリシーを変えてもいい?」って聞かれたら、
Y
を入力してEnterキーを押す。
PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
3.VSCodeのターミナルを再起動!
VSCodeを再起動すると、普通にVScodeのターミナルから実行できるようになる。

ちなみにPowerShell 7ならどうなの?
もしPowerShell 7を使っている場合は、デフォルトの実行ポリシーが**RemoteSigned
**に変更されているみたい。
だから基本的にこのエラーは出なくて、特別な設定をしなくても、そのままnpmコマンドを実行できるみたい。
まとめ
VSCodeでnpmが動かない時は、「管理者としてPowerShellを開く」→「Set-ExecutionPolicy RemoteSigned
を実行」する。