VSCodeのターミナルでコマンドが使えない?リモートフォルダ×PowerShellに注意!

IT・プログラミング

はじめに

Node.jsやPythonなどの開発環境で、VSCode上のターミナルから npxtsceslint などのコマンドを実行しようとしたときに、「コマンドが動かない」「実行エラーが出る」といった問題に直面したことはありませんか?

特に以下のような環境で作業していると、そういったエラーが発生しやすくなります:

  • VSCodeでPowerShellを使っている
  • プロジェクトがGoogle Drive、OneDriveなどのリモートフォルダ上にある

この記事では、そうした環境で起こる問題とその対処法を解説します。

代表的なエラーメッセージ

npx : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\nodejs\npx.ps1 を読み込むことができません。

このエラーは npx だけでなく、以下のような .ps1 形式のコマンド全般で起こり得ます:

  • tsc(TypeScript コンパイラ)
  • eslint
  • prettier
  • vite
  • jest
  • pyright
  • pip(Python環境により)
  • その他、グローバルにインストールされたCLIツール

なぜVSCodeだと動かないのか?

✅ PowerShellの実行ポリシー制限

PowerShellはセキュリティ上の理由から、.ps1 スクリプトの実行を既定でブロックしています。多くのCLIツールは .cmd.ps1 として実体を持っているため、この制限に引っかかると実行できなくなります。

✅ リモート同期フォルダの影響

Google Drive、OneDriveなどで同期されているフォルダ(たとえば G:\マイドライブ)上で作業すると、Windowsのセキュリティ機構が追加的に働き、スクリプトの実行やパーミッションに影響を与える場合があります。

実際の事例

環境
– Windows 11
– VSCode
– ターミナル:PowerShell
– プロジェクトフォルダ:G:\マイドライブ\MyApp(Google Drive for Desktop)

問題
以下のようなコマンドがVSCodeのターミナルでは動かない:

npx create-react-app myapp
tsc
eslint .

しかし、以下では正常に動作する

  • コマンドプロンプト(cmd.exe)
  • ローカルディレクトリ(例:C:\Projects\MyApp)で実行
  • PowerShell以外のシェル

対処法まとめ

✅ 方法1:ターミナルを cmd.exe に切り替える(最も安全)

  1. Ctrl + Shift + P → 「デフォルトのプロファイルの選択
  2. Command Prompt を選択
  3. ターミナルを再起動

これで .ps1 の実行ポリシーを気にせず、CLIツールが使えるようになります。

✅ 方法2:実行ポリシーを変更する(上級者向け)

PowerShell.ps1 を使いたい場合は、以下のコマンドで現在のユーザーのスクリプト実行を許可します:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

⚠️ セキュリティ上のリスクがあるため、信頼できる環境でのみ使用してください。

✅ 方法3:リモートフォルダではなくローカルフォルダで作業する

同期ドライブのような「ネットワークドライブ風のフォルダ」ではなく、C:\Users\yourname\projects などのローカルフォルダで作業することで多くの制限を回避できます。

まとめ

| 問題点 | 詳細 | 対処方法 |
—-|
| .ps1 の実行が制限される | PowerShellの既定の設定 | cmd.exeに切り替える or ポリシー変更 |
| リモート同期フォルダの影響 | 権限・実行制限が強い | ローカルに移動して作業する |
| VSCode特有の環境依存 | ターミナル設定によって挙動が変わる | プロファイル切替で解決可能 |

補足:確認コマンド

実行ポリシーの確認

Get-ExecutionPolicy -List

実際に動くかの確認(cmd.exe上で)

where npx
npx --version

まとめ

CLIツールが使えないときは「VSCodeが悪い」と思いがちですが、原因はPowerShellの制限リモートドライブとの組み合わせにあることが多いです。

特に最近はクラウドストレージを使った開発が一般化しているので、今回のような問題に直面したらぜひこのチェックポイントを確認してみてください。

タイトルとURLをコピーしました