32

The question pretty much says it all; I have users who do not have permission to edit their own PATH environment variable and if they need to have it modified for some reason, they need to log out so an Admin can log in and change the PATH for them, before the user logs back in again. This isn't ideal. Can it be done in a better way?

EEAA
  • 110,608
ninesided
  • 589

7 Answers7

29

For accounts without admin privileges:

Open "User Accounts" and choose "Change my environment variables" (http://support.microsoft.com/kb/931715).

This dialog will show you your current user variables as well as the system variables. You may need to add a local PATH variable if you haven't already.

To update your Path to include the Python 3.3 directory, for instance, click New:

Variable Name: PATH Variable Value: %PATH%;C:\Python33

This creates a local PATH by taking the current system PATH and adding to it.

27

My Computer / Properties / Advanced / Environment Variables. Changes there take effect immediately except for already open command prompt windows. No need to log out and back in.

NOTE: If you don't have access to that window, you might be able to get it by running rundll32 sysdm.cpl,EditEnvironmentVariables from the Run window or command-line.

slm
  • 8,010
10

In addition to the answers above, you can also update the registry (which has the advantage of being scriptable):

The PATH variable is stored in HKEY_CURRENT_USER\Environment.

To read the current path:

reg query HKEY_CURRENT_USER\Environment /v PATH

To append a value c:\somedir to the path:

reg add HKEY_CURRENT_USER\Environment /v PATH /d "%PATH%;c:\somedir"

Note that processes read the environment when being launched, so you would have to restart the process for it to get the new path.

Update: Another way I found is to run:

rundll32 sysdm.cpl,EditEnvironmentVariables

Again, this applet edits the registry and has the same effect as the above.

9

You can always invoke a cmd shell with administrator rights (or any other runas method), and use a tool such as SETX to modify the path permanently. Existing shells and/or running programs will probably be using the old path, but any new shell/program will use the new settings.

Berzemus
  • 1,192
5

In a command prompt you can do:

set PATH=C:\somedir;%PATH%

but this only changes it for the command prompt (and any apps launched from the command prompt). Assuming you want this to apply to everything the user does you change the users environment variables. Right click My Computer, Properties, Advanced, Environment variables and in the "User variables for add a variable:

PATH = C:\whatever

When the user logs in this gets added to the system wide path.

John Rennie
  • 7,806
2

The user can set a PATH variable at a command-prompt that will override the system-wide PATH variable, even if the user doesn't have "Administrator" rights. The change will take effect for new processes the user starts from that command prompt. (The existing Explorer process, and any other processes the user is running when the change is made, will not "see" the change.)

Evan Anderson
  • 142,957
1

On Windows 10, a user without administrator privileges can edit their own path variable by going to Settings and searching for "Edit environment variables for your account" which will pull up all of your environment variables. Then just highlighting "Path" in the top user variables box, you can click edit and set the path. Okay to save and the path should be set for any new console that's opened.