PATH - это переменная окружения, которую Windows использует для поиска исполняемых файлов. В ней перечисляются известные пути к папкам, в которых находятся системные утилиты и различные приложения. Её значение играет важную роль для множества приложений, особенно для утилит командной строки. К сожалению, бывают ситуации, когда пользователи случайно удаляют значение переменной PATH. Это может произойти, когда пользователь случайно заменяет её содержимое, а не добавляет новый путь.
Также нередки случаи, когда некоторые приложения или установщики из-за ошибки в коде уничтожали все данные переменной среды PATH. В этой статье мы рассмотрим различные способы восстановления случайно стертой переменной PATH.
Как восстановить значение переменной PATH
Переменная PATH как бы состоит из двух частей. Она включает в себя пути системной переменной PATH и переменной PATH для текущего пользователя. Системная переменная PATH является общей для всех учетных записей пользователей. Пользовательская переменная PATH может содержать пути к папкам, уникальные для каждого пользователя.
Способ 1. Восстановите содержимое PATH по умолчанию
По умолчанию в Windows системная переменная PATH содержит следующие папки.
- %SystemRoot%\system32
- %SystemRoot%
- %SystemRoot%\System32\Wbem
- %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
- %SYSTEMROOT%\System32\OpenSSH\
И следующая папка включена в PATH для пользователя:
- %USERPROFILE%\AppData\Local\Microsoft\WindowsApps
Вы можете восстановить значения переменной PATH по умолчанию (для системы и/или пользователя), используя один из следующих методов.
Метод с использованием диалогового окна «Свойства системы»
- Откройте диалоговое окно «Свойства системы»: щелкните правой кнопкой мыши «Пуск» и выберите «Выполнить». Введите
sysdm.cpl
и нажмите ОК. - Выберите вкладку «Дополнительно» и нажмите «Переменные среды».
- В разделе «Системные переменные» дважды щелкните «Path».
- В диалоговом окне «Редактировать переменную среды» добавьте каждый из перечисленных выше каталогов.
- Если необходимо, добавьте любые дополнительные папки.
- Аналогичным образом настройте параметры для переменных окружения пользователя, дважды щелкнув «Path» в разделе «Переменные пользователя».
Готово! Однако имейте ввиду - несмотря на то, что вы изменили PATH, запущенные в данный момент приложения будут использовать старое значение этой переменой окружения. Поэтому вам может потребоваться закрыть эти приложения и перезапустить их, чтобы эти программы использовали новые пути из переменной окружения PATH.
Также вы можете использовать системную команду setx для изменения переменных среды в Windows. Она записывает значение переменной PATH в разделы реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment и HKEY_CURRENT_USER\Environment для системы и пользователя, соответственно.
Как восстановить переменную PATH с помощью setx
- Откройте командную строку от администратора (т.е. с повышенными правами).
- Введите следующую команду и нажмите Enter:
setx /m PATH "%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%SYSTEMROOT%\System32\OpenSSH\"
. - Чтобы восстановить переменную PATH для текущего пользователя, запустите эту команду:
setx PATH "%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;"
.
Примечание: помните, что команда setx имеет ограничение 1024 символа на длину содержимого переменной. Это значит, что всё, что длиннее 1024 символов, обрежется. Это может привести к потере данных, ранее хранившихся в переменной PATH, и как следствие, к потере данных. На StackOverflow есть несколько способов решения этой проблемы.
Использование редактора реестра
Наконец, вы можете напрямую отредактировать системный реестр, чтобы задать переменной окружения PATH нужное значение. Как я указал ранее, её значения хранятся в разделах HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment и HKEY_CURRENT_USER\Environment.
Чтобы восстановить значение PATH по умолчанию с помощью редактора реестра, выполните следующие действия.
- Запустите редактор реестра (Win + R >
regedit.exe
). - Перейдите в раздел
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
. - Дважды щелкните «PATH» и установите его равным следующим данным:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%SYSTEMROOT%\System32\OpenSSH\;
. - Аналогично, чтобы задать пользовательскую переменную PATH, перейдите к этому разделу:
HKEY_CURRENT_USER\Environment
. - Дважды щелкните «PATH» и установите его значение данных равным этой строке:
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
. - Закройте редактор реестра и перезагрузите Windows, чтобы применить изменения.
Примечание: Убедитесь, что тип значения для переменной Path в реестре равен REG_EXPAND_SZ. Это важно, так как в его значение включены другие переменные окружения, такие как %SystemRoot%
. Если тип данных для PATH будет, например, REG_SZ, то вложенные переменные не будут обработаны. Если существующее значение «PATH» имеет тип REG_SZ, удалите его, создайте новое значение REG_EXPAND_SZ и только потом введите его значение/данные.
Способ 2. Восстановить предыдущее значение переменной PATH
Если у вас было много пользовательских папок в переменной среды PATH, и вы случайно удалили их, то восстановление значения по умолчанию вам мало поможет. В данном случае предпочтительней восстановить предыдущее её значение, содержащее все папки. Чтобы вернуть исходные значения переменной окружения PATH, используйте один из следующих методов.
Использование Process Explorer
Если вы еще не выключили/не перезагрузили Windows, а сторонняя программа или вы сами уже испортили значение переменной окружения PATH, вы можете извлечь её предыдущее значение из какого-либо запущенного процесса.
Дело в том, что восстановление исходного значения переменных PATH возможно путем чтения переменных среды любой программы, запущенной до удаления PATH. Все уже запущенные программы будут продолжать с тем значением переменных окружения, которое было на момент запуска.
Например, если дефектная программа установки удалила переменную PATH в 13:00, вы можете восстановить PATH, прочитав переменные окружения любой программы, которая была запущена до 13:00. Это может быть любой процесс, например, Explorer.exe или Total Commander, или даже Блокнот.
Ну а если у вас случайно оказалось открытым окно командной строки, которое было запущено до удаления PATH; вы можете легко просмотреть и восстановить PATH, выполнив команду SET
или PATH
из этого экземпляра командной строки.
Если же такого окна командной строки под рукой нет, в восстановлении вам поможет программа Process Explorer.
Чтобы восстановить предыдущее значение переменных окружения командной строки, выполните следующие действия.
- Запустите утилиту Process Explorer с повышенными правами (от имени администратора).
- Дважды щелкните процесс, который был запущен до удаления PATH и до сих пор выполняется. Например, кликните системные процессы
winlogon.exe
илиcsrss.exe
. - Перейдите на вкладку Environment.
- Выберите строку Path и нажмите Ctrl + C чтоб её скопировать.
- Вставьте скопированное значение в Блокнот, и восстановите значение переменной Path, используя sysdm.cpl, реестр или команду setx, как мы рассмотрели выше.
Совет: вы можете узнать, когда была запущена та или иная программа в Windows, включив в Process Explorer столбец "Start Time".
И ещё кое-что. Если вы хотите восстановить Path для текущего пользователя, обязательно выберите процесс, работающий в контексте вашей учетной записи пользователя. Процессы, запущенные от имени системных учётных записей, таких как NT AUTHORITY\LOCAL SERVICE
, NT AUTHORITY\NETWORK SERVICE
или NT AUTHORITY\SYSTEM
, для этой задачи не подходят. Чтобы просмотреть, от имени какого пользователя работает тот или иной процесс, в Process Explorer включите столбец User name, выбрав его в меню «View» > «Select columns…».
Использование теневых копий (точки восстановления)
Если на вашем компьютере есть теневая копия или точка восстановления, вы можете восстановить параметры переменной окружения PATH из файлов реестра, хранящихся в ней. В частности, куст реестра «SYSTEM» хранит системную переменную Path. Вы можете использовать утилиту RegistryChangesView для извлечения этих данных из более точки восстановления или куста реестра из теневой копии.
Для восстановления значения переменной окружения Path из теневой копии сделайте следующее.
- Скачайте и запустите утилиту RegistryChangesView с сайта Nirsoft.net.
- Установите “Registry Data Source 1” равным Current Registry.
- В списке Set “Registry Data Source 2” равным Shadow Copy.
- Выберите доступную теневую копию реестра, из которой будут извлечены данные. Если раскрывающийся список копий пуст, значит, в что в системе нет точек восстановления или теневых копий. В таком случае этот метод не поможет.
- Выберите раздел реестра для сравнения. В этой статье мы установим только флажок HKEY_LOCAL_MACHINE\SYSTEM.
- Нажмите «ОК». RegistryChangesView перечислит и сравнит выбранные ключи в исходном и целевом реестре и покажет результаты.
- В меню утилиты выберите View > Use Quick Filter. Установите фильтр равным строке
\Environment
. - Дважды кликните путь HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager в списке. Вы увидите исходное значение переменной Path, которое вы можете записать в реестр, в sysdm.cpl или сохранить командой setx.
- Также вы можете нажать Ctrl+E в списке найденных ключей утилиты RegistryChangesView. Предыдущее значение переменной Path будет сохранено в REG файл, который вы можете отредактировать Блокнотом, а затем добавить назад в реестр просто двойным щелчком по файлу REG.
- Наконец, перезагрузите Windows чтобы применить изменения.
Использование отката к точке восстановления системы
Ещё один вариант - System Restore(Восстановления системы), утилиты, которая возвращает ваш компьютер в предыдущее состояние. Восстановление системы возвращает критические системные файлы, разделы реестра и другие компоненты до более раннего значения.
Безусловно, откат системы целиком - это явно излишнее действия для восстановления только одной переменной окружения PATH. Но если приведенные выше варианты не выполнимы, то откат системы - вполне рабочий вариант.
Чтобы восстановить переменные окружения через откат системы, сделайте следующее.
- Нажмите Win + R и введите
rstrui.exe
в диалог "Выполнить". - В списке утилиты перечислены только самые последние точки восстановления. Чтобы увидеть полный список, установите флажок «Показать больше точек восстановления».
- Выберите точку восстановления, созданную до случайного удаления переменной окружения PATH.
- Нажмите "Далее", и завершите процесс отката восстановления системы.
Вместо заключения
Итак, если в вашей системе переменная окружения Path повреждена, и не содержала никаких нестандартных значений, то всё, что вам нужно сделать - вернуть её до значения по умолчанию.
Если же в переменной окружения Path были прописаны дополнительные значения, а систему вы перезагрузить не успели - воспользуйтесь Process Explorer, и проанализируйте запущенные процессы и их значения переменных окружения.
Если систему вы всё-таки перезагрузили, попробуйте извлечь один из предыдущих кустов реестра из теневых копий, и сравнить изменения с текущим реестром. Так вы узнаете предыдущее значение переменных окружения из реестра.
В крайнем случае, вы можете попробовать откат системы к одной из точек восстановления.
💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.