XAI_API_KEYを登録したはずなのに、Grok APIを呼ぶプログラムでは空になる。Windowsでは、保存先の環境変数と、起動済みプロセスが持っている環境変数が違うことがあります。キーを何度も発行する前に、どの場所に設定があり、どのアプリが読んでいるかを確認します。
AiWiLL株式会社代表。AI顧問「WiLLAGENT」で、企業の仕事をAIと人が進められる形にする伴走支援を行っています。記事では、実務で使える手順と、人が確認すべき点を明らかにします。
三つの保存範囲を、値を出さずに確かめる
Microsoftの説明では、Windowsの環境変数にはProcess、User、Machineの範囲があります。Processは現在のPowerShellなどの実行環境、Userは利用者、Machineはコンピューター全体に関係する設定です。子プロセスは親プロセスの環境変数を引き継ぎます。
次のコマンドは設定の有無だけを表示します。APIキーの全文や長さは表示しません。普段失敗しているプログラムを起動するPowerShellで実行してください。
foreach ($scope in 'Process','User','Machine') {
$value = [Environment]::GetEnvironmentVariable('XAI_API_KEY', $scope)
[pscustomobject]@{
Scope = $scope
IsSet = -not [string]::IsNullOrWhiteSpace($value)
}
}
$value = $null
IsSetがTrueでも、キーの有効性や権限までは分かりません。ここで調べているのは文字列がその範囲に存在するかだけです。この確認で値があると分かった後に認証エラーが続く場合は、API応答側の調査に進みます。
結果から次の確認先を選ぶ
| 確認結果 | 起きている可能性 | 次の操作 |
|---|---|---|
| UserはTrue、ProcessはFalse | 保存後も古いプロセスを使っている | 作業を保存し、呼び出し元のアプリごと開き直す |
| ProcessだけTrue | そのセッションだけで設定した | どの方法で起動時に渡すかを決める |
| すべてFalse | 未設定、変数名の違い、別ユーザー | アプリが期待する変数名と実行ユーザーを確認 |
| すべてTrueでも一部だけ失敗 | 別の実行環境や別の値を参照している | 実際の起動経路と設定の優先順位を調べる |
UserとMachineの両方に値がある場合も、どちらかをすぐ削除しないでください。他のアプリが利用している可能性があります。設定責任者と使っている処理を確認したうえで、保管場所を整理します。
新しいターミナルなのに反映されない理由
VS Codeの中でターミナルを追加しても、親にあたるVS Code自体が古い環境を持っていれば、その影響を受ける可能性があります。「タブを増やした」と「起動元を開き直した」を分けて記録してください。まずファイルを保存し、対象アプリを閉じて開き直してから同じ有無チェックを行います。
タスクスケジューラやサービスは、対話操作中のユーザーと異なる権限・アカウントで動くことがあります。自分のPowerShellでTrueになっただけでは、定時処理でも読めるとは限りません。定時処理側には、有無だけを記録する診断を用意し、キーをログへ出さないようにします。
.envを置くことと、環境変数を読むことは別
.envファイルを保存しても、すべてのプログラムが自動で読み込むわけではありません。そのプログラムに読み込み処理や起動オプションがあるか、どのフォルダーのファイルを読むかを確認します。ファイルの存在、実行フォルダー、読み込み機能の順で調べれば、APIキーを露出せずに切り分けられます。
共有用メモには「PowerShellでは設定あり、エディターから起動した処理ではなし」「エディターを開き直した後に変化した」のように経路と結果を書きます。画面共有で環境変数一覧や.env全体を表示する方法は避けます。
次はGrok APIのHTTPエラー確認へ進んでください。社内PCごとに設定がばらばらなら、AIを動かす環境と担当範囲の整理から相談できます。
参照した資料

伴走型AI顧問 WiLLAGENT
初月10万円で、AI顧問、使い放題。
月2回・隔週90分の定例枠で、AI社員の開発・改善、社員研修、導入設計・戦略、会社訪問を、御社の仕事に合わせて選べます。定例の間もチャットで相談できます。
初月10万円、翌月から月30万円。最低3か月・総額70万円(いずれも税別)。訪問の交通費、AIツール利用料は別途実費です。
AI顧問の内容と料金を見る

