Я хотел бы добавить переменную окружения на компьютер Windows (настольный компьютер или сервер) и иметь возможность использовать его без перезагрузки этого компьютера.
Допустим, у вас есть рабочий сервер, на котором размещены различные приложения, а для запуска нового приложения требуется определенная переменная среды. Вы не хотите перезагружать его, когда пользователи подключены к другим вашим приложениям. Какой у вас есть выбор? Мне не нравится опция «ждать, пока наступит хорошее время для перезагрузки». Должен быть лучший способ. Что мне не хватает?
windows
environment-variables
Чад Браун-Дуин
источник
источник
Ответы:
Изменения переменных среды должны вступить в силу немедленно, если вы сделаете это изменение в главном диалоговом окне «Свойства» для рассматриваемого компьютера (перейдите в «Мой компьютер | Свойства | Дополнительно | Переменные среды»). После сохранения изменений проводник передает
WM_SETTINGCHANGE
сообщение всем окнам, чтобы сообщить им об изменениях. Любые программы, порожденные через Проводник после этого, должны получить обновленную среду, хотя уже запущенные программы не получат, если они не обрабатывают сообщение об изменении настроек.Я не могу сказать из вашего описания проблемы, какая конкретно у вас проблема с этим. Можете ли вы рассказать нам больше о конкретном сценарии, который не работает?
Эта статья KB также может быть полезна: Как распространить переменные среды в систему
источник
runas /user:yourusername@yourdomain cmd
taskkill /f /im explorer.exe
explorer.exe
Теперь, закрыв все командные строки, вы увидите, что
PATH
переменная действительно обновлена.Все командные строки должны быть закрыты. Снова откройте новую командную строку, введите путь, и вы увидите новые данные.
источник
ctrl+alt+shift
. Это будет чисто выйти из Windows Explorer. В Vista + диалоговое окно выключения труднее найти (но все еще присутствует, по крайней мере, через 7 (не уверены около 8 и 10)), поэтому существует второй метод. Ctrl + Shift + щелчок правой кнопкой мыши в пустой части меню «Пуск» и выберите «Проводник выхода». В 8 опция выхода та же, но вы используете панель задач, а не меню «Пуск».Следует иметь в виду, что многие программы получают переменные среды при первом запуске, поэтому, хотя окна могут не нуждаться в перезапуске, некоторые программы могут использовать их, прежде чем они смогут использовать новые переменные. Хорошим примером этого является необходимость открыть новое окно командной строки после добавления PATH (да, я был отключен этим).
источник
Хотя у меня недостаточно репутации, чтобы прокомментировать наиболее высоко оцененный ответ на этот вопрос, я хотел бы заявить, что он не совсем правильный. Я знаю это, потому что независимо от того, какой обходной путь я попробовал в этом посте, на самом деле ничего не получалось.
Кб статья связана с тем , что ответ на самом деле говорится , что:
Часть о переменных окружения, сбрасывающих к предыдущим значениям после перезагрузки командной строки, является точно тем, что я испытал в Windows Server 2008.
В статье говорится:
Это не означает, что Explorer транслирует сообщение WM_SETTINGCHANGE после того, как вы изменили системные переменные окружения или что оно действительно работает. Я не уверен, как вы будете делать то, что предложено в статье базы знаний (для немедленного распространения изменений) из командной строки.
источник
Сделайте env. переменная доступна сразу:
В зависимости от переменной среды, которую вы хотите изменить, сделайте следующее: (Предположим, вы хотите добавить новый PATH для недавно установленного приложения). Итак, в приглашении оболочки введите следующее:
проверьте, что ваш новый путь был добавлен в переменную окружения
Готово.
Сделать переменную доступной при перезагрузке
Протестировано и работает на Windows 7/10
источник
Возможным решением для служб является их временное использование от имени другого пользователя (кроме LocalSystem, LocalService, NetworkService). Например, для службы Apache это работает без проблем. Чтобы изменить учетную запись службы, откройте консоль services.msc, выберите службу, нажмите «Свойства службы» и на второй вкладке введите учетные данные для входа пользователя. Перезапустите службу, и ее переменные среды должны быть обновлены.
Если это пользователь, который вошел в систему, то это должно работать без проблем. Если вы используете текущую учетную запись пользователя, то может потребоваться перезапуск explorer.exe. Также обратите внимание, что запуск служб в качестве обычной учетной записи пользователя может создать угрозу безопасности.
источник
Поскольку люди еще не добавили этот ответ, я хотел бы упомянуть, что вы можете установить постоянные системные переменные, которые выживут после перезагрузки с помощью команды SETX.
например
Обратите внимание, что вышеописанное не будет работать в текущем командном окне и потребует от вас открыть новое командное окно, прежде чем оно вступит в силу. В результате в зависимости от варианта использования; Возможно, вам придется комбинировать это с одним из других методов, описанных выше.
Пожалуйста, смотрите следующий URL для получения дополнительной информации :
источник