Windows PowerShell で Codex がエラーになるときの対処:インストール、ログイン、パス、引数

Windows PowerShell で Codex を実行するときのよくあるエラーを整理します。codex コマンドが見つからない、npm install 失敗、ExecutionPolicy、空白を含むパス、引数エスケープ、文字化け、権限、ネットワーク、より安全な PowerShell 呼び出しを扱います。

Windows PowerShell で Codex が失敗するとき、原因は Codex 本体とは限りません。Node.js、npm、PATH、実行ポリシー、引用符、環境変数、プロキシ、PowerShell の引数渡しが原因になることが多いです。

クイックチェック

1
2
3
4
5
$PSVersionTable.PSVersion
node -v
npm -v
where.exe codex
codex --version

codex --version が動けば、Codex コマンドは見えています。次にログイン、パス、権限、ネットワークを見ます。

エラー 1:codex が認識されない

1
codex : The term 'codex' is not recognized as the name of a cmdlet...

確認:

1
2
3
4
node -v
npm -v
where.exe npm
where.exe codex

Node.js や npm がない場合は Node.js LTS を入れます。Codex がない場合:

1
npm install -g @openai/codex

再確認:

1
2
where.exe codex
codex --version

まだ見つからない場合は、npm の global bin が PATH に入っていない可能性があります。

エラー 2:npm install -g が失敗する

主な原因:

  • Node.js が古い;
  • npm global directory の権限;
  • 会社プロキシや証明書。
1
2
3
4
5
6
node -v
npm -v
npm ping
npm config get proxy
npm config get https-proxy
npm config get registry

SSL 検証を安易に無効化せず、社内の開発環境手順を確認します。

エラー 3:ExecutionPolicy にブロックされる

1
running scripts is disabled on this system

信頼できるスクリプトなら:

1
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

一度だけ実行:

1
powershell -ExecutionPolicy Bypass -File .\script.ps1

Bypass を常用しないでください。

エラー 4:空白や日本語を含むパス

長い文字列としてコマンドを組み立てないでください。

悪い例:

1
codex --cd C:\Users\Your Name\Documents\My Project

良い例:

1
2
3
$project = 'C:\Users\Your Name\Documents\My Project'
Set-Location -LiteralPath $project
codex

実行ファイルを呼ぶ場合:

1
2
3
4
5
6
$exe = 'C:\Program Files\nodejs\npx.cmd'
$args = @(
    '--version'
)

& $exe @args

エラー 5:Bash のコマンドを貼っている

1
2
3
export OPENAI_API_KEY=sk-...
curl -fsSL https://example.com/install.sh | bash
VAR=value codex

これは PowerShell ではありません。

1
$env:OPENAI_API_KEY = 'sk-...'

永続化:

1
[Environment]::SetEnvironmentVariable('OPENAI_API_KEY', 'sk-...', 'User')

新しい terminal を開き直します。

エラー 6:引用符、バックスラッシュ、JSON が壊れる

複雑な JSON を 1 行で手動エスケープしないでください。

1
codex --config "{\"foo\":\"bar\"}"

代わりにファイルへ:

1
2
3
4
@{
    foo = 'bar'
    mode = 'review'
} | ConvertTo-Json | Set-Content -Encoding UTF8 .\config.json

引数は配列で渡します。

1
2
3
4
5
6
7
8
$args = @(
    '--model'
    'gpt-5-codex'
    '--reasoning-effort'
    'high'
)

codex @args

エラー 7:文字化けやファイル破損に見える

PowerShell の表示だけで判断しないでください。UTF-8 で確認します。

1
python -c "from pathlib import Path; print(Path('README.md').read_text(encoding='utf-8')[:200])"

日本語や中国語の Markdown を書くときは、UTF-8 で保存し、読み直して確認します。

エラー 8:ログインや API Key が効かない

まずどの認証方式か確認します。

  • Codex app / CLI login;
  • API key;
  • local Codex を使う plugin;
  • 別ツール経由の Codex。
1
$env:OPENAI_API_KEY

環境変数を変更したら、新しい PowerShell を開いてください。

エラー 9:プロキシ、証明書、ファイアウォール

1
2
Resolve-DnsName api.openai.com
Test-NetConnection api.openai.com -Port 443

DNS や 443 が通らないなら、Codex 設定より先にネットワークを直します。

エラー 10:成功・失敗判定が違う

native program は $LASTEXITCODE

1
2
3
4
npm test
if ($LASTEXITCODE -ne 0) {
    throw "npm test failed with exit code $LASTEXITCODE"
}

PowerShell cmdlet は terminating error:

1
2
$ErrorActionPreference = 'Stop'
Copy-Item -LiteralPath '.\a.txt' -Destination '.\backup\a.txt'

PowerShell 7 を優先する

powershell.exe は多くの場合 Windows PowerShell 5.1 です。PowerShell 7 は:

1
pwsh.exe
1
$PSVersionTable.PSVersion

PowerShell 7 を入れても powershell.exe は置き換わりません。

安定した Codex 起動テンプレート

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$ErrorActionPreference = 'Stop'

$project = 'C:\Work\my-project'
Set-Location -LiteralPath $project

where.exe codex | Out-Null
if ($LASTEXITCODE -ne 0) {
    throw 'codex command was not found in PATH'
}

codex --version
codex

引数つき:

1
2
3
4
5
6
$args = @(
    '--model'
    'gpt-5-codex'
)

codex @args

推奨する切り分け順

  1. node -vnpm -v
  2. where.exe codex
  3. codex --version
  4. PowerShell 5.1 か 7 か。
  5. パスに空白や非 ASCII があるか。
  6. Bash 構文を貼っていないか。
  7. ExecutionPolicy。
  8. 現在のセッションのログインや API key。
  9. プロキシと証明書。
  10. native program と cmdlet のエラー判定。

まとめ

Windows PowerShell での Codex エラーは、インストール、シェル構文、パスとエンコーディング、ネットワークと認証に分けて考えると切り分けやすいです。配列で引数を渡し、-LiteralPath と UTF-8 検証を使うと安定します。

记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。