Windowsを使っていると「環境変数」や「システム変数」という言葉を目にする機会があります。
プログラムのインストール手順や、エラーの解決策を調べているときによく登場しますよね。
この記事では「システム変数って何?」という疑問に答えながら、代表的な変数の一覧や確認・設定方法まで解説します。
システム変数とは
システム変数(正式名称:システム環境変数)とは、Windows OS 全体で共有して使う「名前と値のペア」のことです。
たとえば %SystemRoot% というシステム変数には C:\Windows という値が入っています。
プログラムはこのシステム変数を参照することで、PCによってドライブ名が異なっていても正しくフォルダの場所を特定できます。
Microsoft Learn では次のように定義されています。
環境変数には、ユーザー環境変数(ユーザーごとに設定)とシステム環境変数(全員に設定)の 2 種類があります。
つまりシステム変数は「そのPCを使うすべてのユーザーに共通して適用される環境変数」です。
システム変数とユーザー変数の違い
| 比較項目 | システム変数 | ユーザー変数 |
|---|---|---|
| 適用範囲 | PC全体(全ユーザー共通) | ログイン中のユーザーのみ |
| 変更権限 | 管理者権限が必要 | 一般ユーザーでも変更可能 |
| 保存場所(レジストリ) | HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment | HKCU\Environment |
| 代表例 | %SystemRoot%、%ProgramFiles% | %USERPROFILE%、%APPDATA% |
同じ名前の変数がシステムとユーザーの両方に存在する場合は、ユーザー変数が優先されます。
ただし %Path% だけは例外で、「システムの値+ユーザーの値」が結合されて使われます。
優先順位は「プロセス > ユーザー > システム」の順です。
代表的なシステム変数一覧
Windowsにデフォルトで設定されている主なシステム変数を紹介します。
| 変数名 | 展開後の値(例) | 説明 |
|---|---|---|
%SystemRoot% | C:\Windows | Windowsシステムファイルの格納フォルダ |
%SystemDrive% | C: | Windowsがインストールされているドライブ |
%ProgramFiles% | C:\Program Files | 64ビットアプリのインストール先 |
%ProgramFiles(x86)% | C:\Program Files (x86) | 32ビットアプリのインストール先 |
%ALLUSERSPROFILE% | C:\ProgramData | 全ユーザー共通のアプリデータ保存先 |
%COMPUTERNAME% | PCの名前 | そのPCに設定されたコンピューター名 |
%ComSpec% | C:\Windows\system32\cmd.exe | コマンドプロンプトの実行ファイルのパス |
%Path% | 複数のパスをセミコロン区切りで列挙 | コマンドで実行できるプログラムの検索パス |
%PATHEXT% | .COM;.EXE;.BAT;.CMD など | コマンドとして実行できる拡張子の一覧 |
%NUMBER_OF_PROCESSORS% | 8 など | CPUのコア数 |
%OS% | Windows_NT | OSの種別 |
%PROCESSOR_ARCHITECTURE% | AMD64 など | CPUのアーキテクチャ |
%TEMP% または %TMP% | C:\Windows\TEMP | システム一時ファイルの保存先 |
%Path% はシステム変数の中でも特に重要です。
ここに登録されたフォルダにあるプログラムは、フルパスを指定しなくてもコマンド名だけで実行できます。
「パスを通す」「パスが通っている」という表現は、この %Path% にフォルダを追加することを指します。
システム変数の確認方法
GUIで確認する(Windows 11)
- Windowsキー+Sで検索バーを開く
- 「環境変数」と入力する
- 「システム環境変数の編集」をクリックする
- 「環境変数」ボタンをクリックする
- 画面下部の「システム環境変数」欄に一覧が表示される
Windows 10の場合は、スタートボタンを右クリック →「システム」→「システムの詳細設定」→「環境変数」の順に進みます。
コマンドプロンプトで確認する
set
すべての環境変数が一覧表示されます。
特定の変数だけ確認したい場合は set Path のように変数名の先頭文字を続けて入力します。
PowerShellで確認する
Get-ChildItem Env:
特定の変数を確認したい場合は下記のように入力します。
$Env:SystemRoot
システム変数の設定・編集方法
GUIで追加・編集する
- 「システム環境変数」欄で「新規」または「編集」をクリックする
- 変数名と値を入力して「OK」をクリックする
- すべてのウィンドウで「OK」をクリックして閉じる
管理者権限がないとシステム変数の編集はできません。
設定後は、新しく開いたコマンドプロンプト/PowerShellに反映されます。
すでに起動中のアプリには即時反映されないため、アプリを再起動するか、Windowsを再起動してください。
コマンドプロンプトで設定する(管理者権限で実行)
SETX 変数名 値 /M
/M オプションを付けることでシステム変数として登録されます。
付けない場合はユーザー変数になります。
PowerShellで設定する(管理者権限で実行)
[Environment]::SetEnvironmentVariable('変数名', '値', 'Machine')
編集するときの注意点
システム変数を誤って変更すると、OSやアプリが正常に動作しなくなることがあります。
特に %Path% の編集は慎重に行う必要があります。
既存の値を消してしまうと、Windowsのコマンドが動かなくなる原因になります。
編集前には現在の値をコピーしてメモ帳などに保存しておくことをおすすめします。
また、既存の値の末尾に追記する形で変更すると、既存の設定への影響を最小限に抑えられます。
削除ボタンを押すと確認ダイアログが表示されずに即削除されるため、特に注意が必要です。
まとめ
システム変数(システム環境変数)は、WindowsのPC全体で共有する設定値のことです。
フォルダのパスやコンピューター名など、OSが動作するうえで欠かせない情報が格納されています。
開発環境の構築や、アプリのエラー解決でよく登場するので、基本的な仕組みと確認方法を押さえておくと役立ちます。
参考情報
- Microsoft Learn「環境変数 – Win32 apps」(2024年参照)
- Microsoft Learn「ユーザー環境変数 – Win32 apps」(2024年参照)


コメント