- HowTo: Set an Environment Variable in Windows — Command Line and Registry
- Print environment variables
- Command Prompt
- Command Prompt — C:\>
- Output
- Command Prompt — C:\>
- Output
- Windows PowerShell
- Windows PowerShell — PS C:\>
- Output
- Windows PowerShell — PS C:\>
- Output
- Set Environment Variables
- User Variables
- Command Prompt — C:\>
- Command Prompt — C:\>
- Output
- System Variables
- Command Prompt — C:\>
- Registry
- Printing Environment Variables
- Изучаем переменные среды в Windows 10
- Переменные среды Windows
- Переменные PATH и PATHEXT
- Создание переменных среды
- Заключение
- Использование и восстановление среды Windows Recovery Environment (WinRE) в Windows 10
- Как загрузить Windows в среде восстановления?
- Основные инструменты среды восстановления WinRE
- Не удалось найти среду восстановления
- Восстановление среды Windows Recovery Environment с помощью утилиты reagentc
- Отключение и включение WinRE
- Проверка записей WinRE в файле конфигурации BCD
- Местоположение файла Winre.wim
- Сброс настроек в файле ReAgent.xml
HowTo: Set an Environment Variable in Windows — Command Line and Registry
Environment variables are not often seen directly when using Windows. However there are cases, especially when using the command line, that setting and updating environment variables is a necessity. In this series we talk about the various approaches we can take to set them. In this article we look at how to interface with environment variables using the Command Prompt and Windows PowerShell. We also note where in the registry the environment variables are set, if you needed to access them in such a fashion.
Print environment variables
You can use environment variables in the values of other environment variables. It is then helpful to be able to see what environment variables are set already. This is how you do it:
Command Prompt
List all environment variables
Command Prompt — C:\>
Output
Print a particular environment variable:
Command Prompt — C:\>
Output
Windows PowerShell
List all environment variables
Windows PowerShell — PS C:\>
Output
Print a particular environment variable:
Windows PowerShell — PS C:\>
Output
Set Environment Variables
To set persistent environment variables at the command line, we will use setx.exe . It became part of Windows as of Vista/Windows Server 2008. Prior to that, it was part of the Windows Resource Kit. If you need the Windows Resource Kit, see Resources at the bottom of the page.
setx.exe does not set the environment variable in the current command prompt, but it will be available in subsequent command prompts.
User Variables
Command Prompt — C:\>
Open a new command prompt.
Command Prompt — C:\>
Output
System Variables
To edit the system variables, you’ll need an administrative command prompt. See HowTo: Open an Administrator Command Prompt in Windows to see how.
Command Prompt — C:\>
Registry
The location of the user variables in the registry is: HKEY_CURRENT_USER\ Environment . The location of the system variables in the registry is: HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Session Manager\ Environment .
When setting environment variables through the registry, they will not recognized immediately. One option is to log out and back in again. However, we can avoid logging out if we send a WM_SETTINGCHANGE message, which is just another line when doing this programatically, however if doing this on the command line it is not as straightforward.
One way is to get this message issued is to open the environment variables in the GUI, like we do in HowTo: Set an Environment Variable in Windows — GUI; we do not need to change anything, just open the Environment Variables window where we can see the environment variables, then hit OK .
Another way to get the message issued is to use setx , this allows everything to be done on the command line, however requires setting at least one environment variable with setx .
Printing Environment Variables
With Windows XP, the reg tool allows for accessing the registry from the command line. We can use this to look at the environment variables. This will work the same way in the command prompt or in powershell. This technique will also show the unexpanded environment variables, unlike the approaches shown for the command prompt and for powershell.
Изучаем переменные среды в Windows 10
Переменные среды Windows
Получить информацию о существующих переменных можно в свойствах системы. Для этого кликаем по ярлыку Компьютера на рабочем столе правой кнопкой мыши и выбираем соответствующий пункт.
Переходим в «Дополнительные параметры».
В открывшемся окне с вкладкой «Дополнительно» нажимаем кнопку, указанную на скриншоте ниже.
Здесь мы видим два блока. Первый содержит пользовательские переменные, а второй системные.
Если требуется просмотреть весь перечень, запускаем «Командную строку» от имени администратора и выполняем команду (вводим и нажимаем ENTER).
На рабочем столе появится файл с названием «set.txt», в котором будут указаны все переменные окружения, имеющиеся в системе.
Все их можно использовать в консоли или скриптах для запуска программ или поиска объектов, заключив имя в знаки процента. Например, в команде выше вместо пути
Примечание: регистр при написании переменных не важен. Path=path=PATH
Переменные PATH и PATHEXT
Если с обычными переменными все понятно (одна ссылка – одно значение), то эти две стоят особняком. При детальном рассмотрении видно, что они ссылаются сразу на несколько объектов. Давайте разберемся, как это работает.
«PATH» позволяет запускать исполняемые файлы и скрипты, «лежащие» в определенных каталогах, без указания их точного местоположения. Например, если ввести в «Командную строку»
система осуществит поиск по папкам, указанным в значении переменной, найдет и запустит соответствующую программу. Этим можно воспользоваться в своих целях двумя способами:
- Поместить необходимый файл в одну из указанных директорий. Полный список можно получить, выделив переменную и нажав «Изменить».
Создать свою папку в любом месте и прописать путь к ней. Для этого (после создания директории на диске) жмем «Создать», вводим адрес и ОК.
%SYSTEMROOT% определяет путь до папки «Windows» независимо от буквы диска.
Затем нажимаем ОК в окнах «Переменные среды» и «Свойства системы».
Для применения настроек, возможно, придется перезапустить «Проводник». Сделать это быстро можно так:
Открываем «Командную строку» и пишем команду
taskkill /F /IM explorer.exe
Все папки и «Панель задач» исчезнут. Далее снова запускаем «Проводник».
Еще один момент: если вы работали с «Командной строкой», ее также следует перезапустить, то есть консоль не будет «знать», что настройки изменились. Это же касается и фреймворков, в которых вы отлаживаете свой код. Также можно перезагрузить компьютер или выйти и снова зайти в систему.
Теперь все файлы, помещенные в «C:\Script» можно будет открывать (запускать), введя только их название.
«PATHEXT», в свою очередь, дает возможность не указывать даже расширение файла, если оно прописано в ее значениях.
Принцип работы следующий: система перебирает расширения по очереди, пока не будет найден соответствующий объект, причем делает это в директориях, указанных в «PATH».
Создание переменных среды
Создаются переменные просто:
- Нажимаем кнопку «Создать». Сделать это можно как в пользовательском разделе, так и в системном.
Вводим имя, например, «desktop». Обратите внимание на то, чтобы такое название еще не было использовано (просмотрите списки).
В поле «Значение» указываем путь до папки «Рабочий стол».
Нажимаем ОК. Повторяем это действие во всех открытых окнах (см. выше).
Для примера переделаем команду, которую мы использовали для получения списка (самая первая в статье). Теперь нам вместо
потребуется ввести только
Заключение
Использование переменных окружения позволяет значительно сэкономить время при написании скриптов или взаимодействии с системной консолью. Еще одним плюсом является оптимизация создаваемого кода. Имейте в виду, что созданные вами переменные отсутствуют на других компьютерах, и сценарии (скрипты, приложения) с их использованием работать не будут, поэтому перед тем, как передавать файлы другому пользователю, необходимо уведомить его об этом и предложить создать соответствующий элемент в своей системе.
Использование и восстановление среды Windows Recovery Environment (WinRE) в Windows 10
Среда восстановления Windows Recovery Environment (WinRE) представляет собой минимальную ОС на базе среды предварительной установки Windows Preinstallation Environment (WinPE), в которую включен ряд инструментов для восстановления, сброса и диагностики ОС Windows. Если Windows, установленная на вашем компьютере, перестает загружаться, компьютер пытается запустить среду восстановления WinRE, которая в автоматическом (или ручном режиме) может помочь вам исправить возникшие проблемы. Из WinRE можно автоматически исправить загрузчик, восстановить ОС из резервной копии образа, откатиться к точке восстановления, запустить командную строку и т.д.
Среда Windows RE фактически состоит из 3 трех файлов, которые находятся на отдельном скрытом разделе System Reserved:
- winre.wim – WIM образ со средой WinPE, в которую интегрированы дополнительные утилиты для восстановления Windows;
- boot.sdi – используется для создания RAM диска в памяти;
- ReAgent.xml — конфигурационный файл WindowsRE.
В этой статье мы покажем, как загрузить ваш компьютер в среде WinRE, и как пересоздать среду восстановления в Windows 10, если она на работает.
Как загрузить Windows в среде восстановления?
Чтобы при следующей перезагрузке Windows вам компьютер загрузился в среде восстановления, нужно в меню Пуск нажать на кнопку перезагрузки с зажатой клавишей Shift.
Также можно перезагрузить компьютер в режиме WinRE из командной строки с помощью нового ключа –o команды shutdown:
shutdown /f /r /o /t 0
Также есть еще одна команда для принудительного входа в среду восстановления при следующей загрузке компьютера:
Компьютер автоматически загружается в среде Windows Recovery Environment, если три предыдущие попытки нормальной загрузки Windows были неудачными. Т.е. чтобы загрузить ваш компьютер в WinRE достаточно 3 раза подряд прервать загрузку Windows кнопкой питания.
Основные инструменты среды восстановления WinRE
В среде восстановления WinRE доступно несколько инструментов, которые позволят вам исправить различные проблемы с Windows:
- ResetthisPC – позволяет сбросить вашу Windows к заводским настройкам (личные данные и файлы будут удалены);
- SystemRestore – позволяет восстановить состояние Windows с помощью созданной ранее точки восстановления;
- SystemImageRecovery – полное восстановление Windows из резервной копии образа (на внешнем носителе);
- Automatic Repair/Start-up Repair– Windows пытается автоматически найти и исправить возможные проблемы (мастер может самостоятельно восстановить загрузчик, конфигурацию BCD и запись MBR(Master Boot Record);
Если вы хотите запустить командную строку или другое средство исправления ошибок, WinRE запросит от вас пароль учетной записи с правами локального администратора (пароль будет сравнен с данными в локальной базе SAM).
Перед вами должно открыться окно командной строки X:\Windows\System32>.
Из командной строки можно выполнить проверку диска утилитой chkdsk, выполнить проверку образа через sfc.exe или dism, запустить regedit, bootrec, startrep (эта утилита позволяет найти и исправить проблемы с реестром, драйверами, разделами и т.д.) и другие команды (на сайте довольно много статей, где мы показываем как исправить различные проблемы Windows в среде восстановления или WinPE).
Чтобы закрыть командную строку WinRE и вернутся к выбору режима загрузки, выполните команду:
Не удалось найти среду восстановления
В некоторых случаях компьютер не может загрузиться в среде Windows Recovery Environment. При это при попытке выполнить сброс системы, или загрузиться в режиме восстановления вы можете увидеть ошибки вида “ Невозможно найти среду восстановления / Could not find the recovery environment ”. Это означает что раздел с WinRE или WIM файл среды восстановления были удалены/повреждены, или некорректно настроена конфигурации ReAgent или BCD.
Причины, по которым на компьютере не загружается среда WinRE могут быть разными:
- Среда WinRE отключена на уровне настроек Windows;
- В хранилище конфигурации загрузки (BCD) отсутствуют записи для загрузки в режиме восстановления;
- Файл с образом среды winre.wim отсутствует или перемещен;
- Отсутствует или содержит некорректные данные файл конфигурации WinRE — ReAgent.xml.
Далее мы рассмотрим основные способы восстановления среды WinRE на примере Windows 10 (для Windows 7 и Windows 8.1 процедура аналогична).
Восстановление среды Windows Recovery Environment с помощью утилиты reagentc
Отключение и включение WinRE
Попробуйте из основной Windows отключить и включить режим WinRE, выполнив в командной строке с правами администратора следующие команды:
reagentc /disable
reagentc /enable
Для исправления нужно перезагрузится и вручную отключить о включить WinRE.
При появлении ошибки “ REAGENTC.EXE: Unable to update Boot Configuration Data ”, исправьте сначала проблему с загрузчиком Windows (инструкция для UEFI и BIOS компьютеров).
Если вы получите сообщение, “ REAGENT.EXE: образ среды восстановления Windows не найден ”, вероятно удален файл winre.wim или раздел System Restore.
Проверка записей WinRE в файле конфигурации BCD
Проверьте, что в конфигурации загрузки BCD (Boot Configuratin Data) имеются корректные записи для загрузки среды WinRE.
Выведите текущие записи в BCD:
bcdedit /enum all
В списке вариантов загрузки найдите секцию Windows Boot Loader, с идентификатором identifier= . В нашем примере эта запись выглядит таким образом:
Найдите и запомните значение GUID в атрибуте recoverysequence (в нашем примере это <7c817935-e52f-11e6-9c2c-0050569efccb>).
Далее нужно найти секцию конфигурации загрузки, у которой значение идентификатора (identifier) равно полученному выше GUID, а в описании поля (description) указано Windows Recovery Environment. Эта запись может выглядеть так:
Если такая запись не найдена, ищите другую запись BCD с другим GUID в качестве идентификатора, с текстомWindows Recovery Environment в поле description, у которой в значениях device и osdevice указан путь к файлу Winre.wim.
Путь к wim файлу может указывать на другой диск (к примеру, [\Device\HarddiskVolume2]). Если такая секция найдена, можно привязать эту запись загрузчика для загрузки WinRe в качестве среды восстановления для текущей системы. Скопируйте GUID найденной записи и замените его в следующей команде:
bcdedit /set
Местоположение файла Winre.wim
Убедитесь, что файл Winre.wim находится по указанному пути. Как правило, он хранится в одном из следующих местоположений (папки скрытые): каталоге C:\Windows\System32\Recovery, на отдельном скрытом разделе System Reserved, либо на OEM разделе восстановления от производителя (убедитесь, что вы его не удаляли). В нашем примере он должен находится на диске F:\ в каталоге \Recovery\WindowsRE\Winre.wim.
Затем проверьте путь к wim файлу, который указан в файле ReAgent.xml (находится в каталоге C:\Windows\System32\Recovery либо в каталоге Recovery на разделе восстановления). Откройте файл конфигурации с помощью любого редактора и проверьте значение атрибута reagentc /disable
reagentc /enable
Сброс настроек в файле ReAgent.xml
Если методики выше не помогли вам восстановить работоспособность WinRe, можно попробовать сбросить настройки среды восстановления в файле ReAgent.xml (предварительно сделайте его копию).