Windows PowerShell で利用できる環境変数ですが、個人的に一覧の確認や指定の方法を忘れがちだったので既定で使える変数と使用例をまとめましたので参考にして頂ければと思います。
PowerShell 環境変数の一覧と使用例
PowerShell で設定されている環境変数をまとめてみました。こちらの情報は「Get-ChildItem Env:」で取得した Windows Server 2019 日本語版のインストール直後のものになります。
※環境によっては Variable Name の項目数が異なる場合があります。
Name 値を $Env:<variable-name> のように指定することで、対象環境の Value 値 を利用することができます。ちなみに、Env とは、Environment(環境)の意味のようです。
既定の環境変数
Name(variable-name) | Value | |
1 | ALLUSERSPROFILE | C:\ProgramData |
2 | APPDATA | C:\Users\Administrator\AppData\Roaming |
3 | CLIENTNAME | <接続元コンピューター名> |
4 | CommonProgramFiles | C:\Program Files\Common Files |
5 | CommonProgramFiles(x86) | C:\Program Files (x86)\Common Files |
6 | CommonProgramW6432 | C:\Program Files\Common Files |
7 | COMPUTERNAME | WIN-*********** |
8 | ComSpec | C:\Windows\system32\cmd.exe |
9 | DriverData | C:\Windows\System32\Drivers\DriverData |
10 | HOMEDRIVE | C: |
11 | HOMEPATH | \Users\Administrator |
12 | LOCALAPPDATA | C:\Users\Administrator\AppData\Local |
13 | LOGONSERVER | \\WIN-*********** |
14 | NUMBER_OF_PROCESSORS | 1 |
15 | OS | Windows_NT |
16 | Path |
C:\Windows\system32;C:\Windows; |
17 | PATHEXT | .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS; .JSE;.WSF;.WSH;.MSC;.CPL |
18 | PROCESSOR_ARCHITECTURE | AMD64 |
19 | PROCESSOR_IDENTIFIER | Intel64 Family 6 Model 44 Stepping 2, GenuineIntel |
20 | PROCESSOR_LEVEL | 6 |
21 | PROCESSOR_REVISION | 2c02 |
22 | ProgramData | C:\ProgramData |
23 | ProgramFiles | C:\Program Files |
24 | ProgramFiles(x86) | C:\Program Files (x86) |
25 | ProgramW6432 | C:\Program Files |
26 | PSModulePath | C:\Users\Administrator\Documents\ WindowsPowerShell\Modules; C:\Program Files\WindowsPowerShell\Modules; C:\Windows\system32\WindowsPowerShell\ v1.0\Modules |
27 | PUBLIC | C:\Users\Public |
28 | SESSIONNAME | ********************#0 |
29 | SystemDrive | C: |
30 | SystemRoot | C:\Windows |
31 | TEMP | C:\Users\ADMINI~1\AppData\Local\Temp\2 |
32 | TMP | C:\Users\ADMINI~1\AppData\Local\Temp\2 |
33 | USERDOMAIN | WIN-*********** |
34 | USERDOMAIN_ROAMINGPROFILE | WIN-*********** |
35 | USERNAME | Administrator |
36 | USERPROFILE | C:\Users\Administrator |
37 | windir | C:\Windows |
※折返し表示ができず改行で記載しているものもありますが、実際の値には含まれていません。
環境変数の設定[$Env:<variable-name>]
既定の環境変数以外にも任意で環境変数を設定することが可能です。以下の構文を使うことで、 <variable-name> に対し、<new-value> で指定した値を格納することができます。
コマンド例
$Env:<variable-name> = "<new-value>"
このように指定することで独自の環境変数として利用することができます。
※ここで指定した環境変数は、起動中のプロンプト画面が閉じられるまで有効になります。
環境変数を使ったコマンドレットの使用例
PowerShell コマンドレットに「$Env:COMPUTERNAME」のような形式で指定することで、環境変数の Value 値を利用することができます。
対象コンピューターの情報をエクスポートする際にエクスポート先のパス指定を簡素化できたり、エクスポートするファイル名を自動的に対象コンピューター名を付与した形にすることができるので、作業にかかる時間やパスやファイル名の入力ミスを防ぐことができます。
コマンド実行例
Get-HotFix | Out-File -FilePath $Env:HOMEPATH\Desktop\"$Env:COMPUTERNAME"_HOTFIX.log
ためしに Get-Hotfix でファイルを出力してみました。このように指定することで環境変数で指定されたユーザーのデスクトップへ $Env:COMPUTERNAME の値であるコンピューター名が付与されたファイルを出力することができます。
まとめ
PowerShell スクリプトを組んだり、同時に複数のクライアントに対して作業を行う際などには是非活用してみましょう。