※本ページにはプロモーション(広告)が含まれています
プログラミングやコマンドラインツールを扱う場面で、「環境変数を設定してください」と案内されることがあります。特に開発ツールのインストール時にはPATH設定がほぼ必須ですが、初めて触れる方にとっては、どこで何を設定すればいいのかわかりにくい部分です。Windowsの環境変数を理解しておくと、コマンドプロンプトやPowerShellでの作業が格段にスムーズになります。
本記事ではWindowsの環境変数の役割、システム変数とユーザー変数の違い、GUIからの設定手順、PowerShellを使った設定方法、PATHの追加方法を段階的に解説します。初心者でも迷わず操作できるよう、画面の流れを意識して紹介していきますので、ぜひ参考にしてください。

この記事でわかること
- 環境変数の役割と基本概念
- システム変数とユーザー変数の違いと使い分け
- GUIから環境変数を設定する手順
- PATHへ新しいフォルダを追加する方法
- PowerShellを使ったコマンドでの環境変数設定
環境変数とは
環境変数は、OSやアプリが共通で参照できる「名前付きの値」のことです。たとえばPATH変数には、コマンドを実行するときに探索するフォルダの一覧が入っており、JAVA_HOMEにはJDKのインストール場所が入っていたりします。アプリは環境変数を参照することで、ハードコードせずに柔軟な動作を実現しています。
Windowsには大きく分けて「システム変数」と「ユーザー変数」の2種類があります。両方とも環境変数として機能しますが、適用範囲が異なります。
システム変数とユーザー変数の違い
- システム変数: パソコン全体で有効。すべてのユーザーで共有される
- ユーザー変数: 現在ログオンしているユーザーのみで有効
システム変数を変更するには管理者権限が必要です。共有パソコンで他のユーザーに影響を与えたくない場合はユーザー変数を使うと安全です。両方に同じ名前の変数が存在する場合は、ユーザー変数が優先される動作になります。

GUIから環境変数を設定する手順
もっとも一般的な方法は、Windowsのシステム設定画面からGUIで編集することです。Windows 10とWindows 11で操作はほぼ同じです。
設定画面を開く
- スタートメニューを開き「環境変数」と入力
- 「システム環境変数の編集」を選択
- 「システムのプロパティ」が開いたら「環境変数」ボタンをクリック
環境変数の編集ウィンドウが表示され、上段にユーザー変数、下段にシステム変数が一覧で並びます。
新しい変数を作成する
- 適切な側(ユーザーまたはシステム)の「新規」ボタンを押す
- 「変数名」と「変数値」を入力する
- 「OK」をクリックして保存
- すべての画面で「OK」を押して反映
変更後はコマンドプロンプトやPowerShellを開き直すと新しい変数が反映されます。すでに開いているターミナルでは古い値が残ったままなので注意しましょう。
PATHへフォルダを追加する
もっとも頻繁に編集される変数がPATHです。新しいプログラムを「どこからでも呼び出せるコマンド」として使うには、その実行ファイルがあるフォルダをPATHに追加します。
- 環境変数編集画面で「Path」を選び「編集」をクリック
- 表示された一覧の「新規」ボタンを押す
- 追加したいフォルダの絶対パスを入力(例: C:\tools\bin)
- 「OK」を押して保存
- 新しいターミナルでコマンドが認識されるか確認
PATHは順序が重要です。同じ名前のコマンドが複数フォルダにある場合、上位にあるフォルダのコマンドが優先されます。優先順位を変えたいときは項目を選択して「上へ」「下へ」で並び順を調整してください。
PowerShellから環境変数を扱う
GUIではなくPowerShellで環境変数を扱うこともできます。一時的な確認や、スクリプトでの自動化に便利です。
環境変数を確認する
PowerShellで以下のコマンドを入力します。
- $env:PATH と入力するとPATHの内容が表示される
- Get-ChildItem Env: で全環境変数を一覧表示
一時的に設定する
PowerShellセッションの中だけで有効な環境変数を作るには $env:VAR_NAME = “値” の形式で代入します。セッションを閉じると消えるため、検証用に向いています。
永続的に設定する
永続化したい場合は [Environment]::SetEnvironmentVariable() メソッドを使います。第2引数に値、第3引数に “User” もしくは “Machine” を指定します。Machineを指定するには管理者権限のPowerShellが必要です。

システム変数・ユーザー変数の使い分け
| 用途 | 推奨 | 理由 |
|---|---|---|
| 個人で使う開発ツール | ユーザー変数 | 他ユーザーに影響しない |
| サーバー用途の共通ツール | システム変数 | 全ユーザー共通で利用可能 |
| 一時的な検証 | PowerShellのみ | セッション終了で消える |
| スクリプトで自動設定 | PowerShell経由のシステム変数 | 自動化と権限管理の両立 |
よくあるトラブルと対処
コマンドが見つからないと表示される
PATHに登録したフォルダのパスにスペルミスがないか確認しましょう。また、コマンドプロンプトを一度閉じて再起動することで、変更が正しく反映されているか確認できます。
環境変数が空になっている
編集画面で誤って「削除」を押してしまうと元に戻せなくなる場合があります。重要な変数を編集する前にメモアプリへ既存の値を貼り付けてバックアップしておくと安心です。
ユーザー変数とシステム変数で値が衝突する
同じ名前の変数が存在すると優先順位が予期せぬ動作を生むことがあります。基本はユーザー変数のみで完結させ、必要に応じてシステム変数を使うのがおすすめです。
🛒 関連商品をAmazonでチェック
FAQ
Q1. PATHに追加したのにコマンドが認識されません。なぜですか?
既に開いているコマンドプロンプトやPowerShellは古い環境変数を保持しています。一度ターミナルを閉じてから開き直すか、Windowsを再起動してください。
Q2. 環境変数の値にスペースが入っているとどうなりますか?
スペースを含むパスは引用符で囲む必要があります。GUIから入力する場合は自動で扱われますが、スクリプトでは “C:\Program Files\…” のようにダブルクォートで囲むと確実です。
Q3. 他のパソコンと同じ環境変数を設定したい場合はどうしますか?
環境変数の一覧をエクスポートしてテキスト化しておき、別マシンにインポートする方法があります。PowerShellでGet-ChildItem Env: > env.txt のようにファイル化すると共有しやすくなります。
まとめ
Windowsの環境変数は、コマンドラインや開発ツールの動作を制御する重要な仕組みです。システム変数とユーザー変数の違いを理解し、目的に合った場所で設定することで安全に環境を整えられます。GUIからの設定が基本ですが、PowerShellを使えば自動化や一時的な検証にも対応できます。PATH管理を中心に、必要な変数だけを整理して登録することで、快適な開発・運用環境を構築できます。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!