it-swarm.xyz

Как я могу изменить переменную среды PATH пользователя без выхода из системы?

Вопрос в значительной степени говорит обо всем; У меня есть пользователи, у которых нет прав на редактирование их собственной переменной среды PATH, и если им по какой-то причине необходимо изменить ее, им необходимо выйти, чтобы администратор мог войти и изменить PATH для них, прежде чем пользователь снова войдет в систему. Это не идеально. Можно ли сделать это лучше?

24
ninesided

Вы всегда можете вызвать командную консоль с правами администратора (или любым другим методом runas) и использовать такой инструмент, как SETX , чтобы навсегда изменить путь. Существующие оболочки и/или работающие программы, вероятно, будут использовать старый путь, но любая новая оболочка/программа будет использовать новые настройки.

6
Berzemus

Для учетных записей без прав администратора:

Откройте "Учетные записи пользователей" и выберите "Изменить переменные среды" ( http://support.Microsoft.com/kb/931715 ).

Этот диалог покажет вам ваши текущие пользовательские переменные, а также системные переменные. Возможно, вам придется добавить локальную переменную PATH, если вы еще этого не сделали.

Чтобы обновить путь к каталогу Python 3.3, нажмите New:

Имя переменной: PATH Значение переменной:% PATH%; C:\Python33

Это создает локальный PATH, беря текущий системный PATH и добавляя к нему.

25
Curtis Nelson

Мой компьютер/Свойства/Дополнительно/Переменные среды. Изменения вступают в силу немедленно кроме для уже открытых окон командной строки. Нет необходимости выходить из системы и входить обратно.

ПРИМЕЧАНИЕ: Если у вас нет доступа к этому окну, вы можете получить его, запустив rundll32 sysdm.cpl,EditEnvironmentVariables из окна запуска или командной строки.

11
John Gardeniers

В командной строке вы можете сделать:

set PATH=C:\somedir;%PATH%

но это только изменяет его для командной строки (и любых приложений, запускаемых из командной строки). Предполагая, что вы хотите, чтобы это применялось ко всему, что пользователь делает, вы меняете переменные среды пользователя. Щелкните правой кнопкой мыши Мой компьютер, Свойства, Дополнительно, Переменные среды и в разделе "Пользовательские переменные для добавления переменной:

PATH = C:\whatever

Когда пользователь входит в систему, он добавляется к общесистемному пути.

4
John Rennie

Пользователь может установить переменную PATH в командной строке, которая переопределит общесистемную переменную PATH, даже если у пользователя нет прав "Администратор". Изменение вступит в силу для новых процессов, которые пользователь запускает из этой командной строки. (Существующий процесс Explorer и любые другие процессы, выполняемые пользователем при внесении изменения, не будут "видеть" это изменение.)

2
Evan Anderson

В дополнение к ответам, приведенным выше, вы также можете обновить реестр (который имеет преимущество, заключающееся в возможности написания сценариев):

Переменная PATH хранится в HKEY_CURRENT_USER\Environment.

Чтобы прочитать текущий путь:

reg query HKEY_CURRENT_USER\Environment /v PATH

Чтобы добавить значение c:\somedir к пути:

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

Обратите внимание, что при запуске процессы читают среду, поэтому вам придется перезапустить процесс, чтобы он получил новый путь.

Обновление: я нашел еще один способ:

rundll32 sysdm.cpl,EditEnvironmentVariables

Опять же, этот апплет редактирует реестр и имеет тот же эффект, что и выше.

1
Kristopher Noronha