Назад | Перейти на главную страницу

Как я могу установить переменную среды пользователя Windows, которая вступает в силу для текущего сеанса?

Я пытаюсь установить переменную среды пользователя Windows, а затем запустить приложение с помощью командного файла или сценария. Однако для переменной среды не устанавливается соответствующее значение до тех пор, пока пользователь не выйдет из системы и снова не войдет в систему. (Я думаю, что более точным описанием будет то, что новое значение будет доступно приложению только после следующего входа в систему.)

Есть ли способ установить переменную в среде пользователя, чтобы она была доступна немедленно?

Я делаю это потому, что функциональными возможностями этой программы можно управлять с помощью переменных среды, и пользователям в разное время потребуются разные функции. Из-за ограничений лицензии мне нужно установить это динамически, если возможно.

Спасибо,

Грэм

Самый простой способ вообще не устанавливать переменную среды и запускать приложение из пакетного файла, который устанавливает переменную среды для этого сеанса. Только если переменная существует, она не вступит в силу до следующего входа в систему.

Где вы на самом деле устанавливаете переменную? Если вы устанавливаете его в свойствах системы, это повлияет только на новые сеансы оболочки, а не на существующие ... но на самом деле выход из системы / вход в систему не требуется.

Лучше всего установить переменную в том же командном файле, который запускает приложение.

Если вы являетесь администратором компьютера, вы можете добавить нужное значение в реестр. Затем запустите командный файл.

Это добавит переменную среды MYENVIRON со значением MYVALUE

reg add "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v MYENVIRON / t REG_SZ / d MYVALUE / f