Windows user environment variable vs. system environment variable

12,438

Solution 1

In PowerShell, there's no cmdlet for it, but you can use the underlying .NET methods in the Environment class:

Write-Host "Machine environment variables"
[Environment]::GetEnvironmentVariables("Machine")

Write-Host "User environment variables"
[Environment]::GetEnvironmentVariables("User")

# This should be the same as 'Get-ChildItem env:', although it isn't sorted.
Write-Host "Process environment variables"
[Environment]::GetEnvironmentVariables("Process")

Solution 2

Use the following batch file:

@echo off
for /f "tokens=3 usebackq" %%a in (`reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" ^| findstr TEMP`)  do @echo System variable TEMP = %%a
for /f "tokens=3 usebackq" %%a in (`reg query "HKEY_CURRENT_USER\Environment" ^| findstr TEMP`)  do @echo Current user variable TEMP = %%a

To use from a command line replace %% with %.

Output:

System variable TEMP = %SystemRoot%\TEMP
Current user variable TEMP = %USERPROFILE%\AppData\Local\Temp

Note that the HKEY_CURRENT_USER takes precedance (but for some reason %USERPROFILE% is expanded to a shortname when evaluating %TEMP%):

echo %USERPROFILE%
USERPROFILE=C:\Users\DavidPostill

echo %TEMP%
C:\Users\DAVIDP~1\AppData\Local\Temp
Share:
12,438
thinkster
Author by

thinkster

Updated on June 11, 2022

Comments

  • thinkster
    thinkster almost 2 years

    In Windows, is there any shell/PowerShell command to list user environment variable and system environment variable separately?

    If I do -

    SET TEMP
    

    Windows displays the user environment variable instead of system variable for TEMP.

    I am looking for a shell command/switch to display these variables separately.

  • Frode F.
    Frode F. almost 9 years
    And to get a specific variable, use [Environment]::GetEnvironmentVariable("TEMP", "Machine")
  • thinkster
    thinkster almost 9 years
    Got to learn something new from those scripts. Thanks, that's helpful.