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

4

Я недавно установил openssh на мой компьютер с Windows 7. Установка перезаписала мою переменную Path и уничтожила все остальные пути, которые я использую в командной строке. У меня там, наверное, 50 путей, и я запомню их навсегда. Есть ли способ восстановить эту переменную до установки?

Морган Херлокер
источник

Ответы:

15

Ваша среда находится в реестре и может быть сохранена как часть точки восстановления системы . Вы можете попытаться вернуться к предыдущей точке восстановления, но это может вернуть больше, чем просто ваша установка OpenSSH (т. Е. Вам может потребоваться переустановить другое программное обеспечение).

Fran
источник
7
+1 Поскольку Восстановление системы - единственный разумный инструмент, который можно использовать для этого. Кроме того, я считаю, что с помощью функции «Восстановление системы» вы можете выполнить «откат» до точки восстановления после копирования необходимой информации, поэтому наилучшим процессом может быть создание новой точки восстановления, откат, копирование пути, а затем откат еще раз, что должно привести к мало реальных изменений в вашей системе.
Мокубай
1
+1 за предложение «накатить». Очень хорошая идея.
Фран
@Fran Я даю вам ответ, потому что я также пишу ответ, основанный на извлечении PATH из реестра, и я не хочу, чтобы вы чувствовали, что я украл ваш ответ. (Хотя, если я могу похвастаться, мой ответ выше!)
2

Если у вас нет точки восстановления или вы не хотите проходить через этот процесс, Microsoft предоставляет инструмент под названием Process Explorer, с помощью которого вы можете проверить путь во время создания процесса.

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

  1. НЕ ПЕРЕЗАГРУЗИТЕ СВОЮ МАШИНУ
  2. Скачать Process Explorer от Microsoft
  3. Распакуйте его куда-нибудь и запустите
  4. Дважды щелкните один из процессов, которые были запущены до того, как была потеряна переменная PATH.
  5. Выберите вкладку «Среда»
  6. Найдите PATH и скопируйте его (он также скопирует имя переменной, поэтому вам нужно вынуть его)
  7. Вставьте его в переменную PATH.

Это должно сделать это. Помните, что эти переменные PATH разрешены, т. Е. У вас не будет никакого% VARIABLE_HERE% в значении пути.

dosaki
источник
1
Умный ответ! Он основан на том факте, что после запуска приложения он создает копию переменной PATH и сохраняет ее до закрытия приложения.
0

PATHПеременная окружения хранится в реестре Windows в разделе:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00x\Control\Session Manager\Environment

... в Pathпараметре. («x» в «ControlSet00x» является цифрой.)

Если резервное копирование реестра выполняется как часть одной из контрольных точек восстановления системы, вы можете извлечь резервную копию без восстановления системы до предыдущей контрольной точки! Сделать это:

  1. Перейдите к C:\Windows\System32\Config. Я предпочитаю делать это в таком приложении, как Multi Commander, чтобы не нарушать его разрешения NTFS.
  2. Щелкните правой кнопкой мыши по SYSTEMфайлу. НЕ по ошибке щелкните правой кнопкой мыши SYSTEM.LOG1 или SYSTEM.LOG2.
  3. Нажмите Свойства.
  4. Перейдите на вкладку «Предыдущие версии».
  5. Восстановите предыдущую версию этого файла, а также SYSTEM.LOG1 и SYSTEM.LOG2 где-нибудь еще на вашем компьютере.
  6. Теперь открой regeditи иди HKEY_LOCAL_MACHINE.
  7. Выберите Файл-> Загрузить куст ...
  8. Дайте адрес извлеченного SYSTEMфайла, а затем укажите имя улья, например SYSTEM-old.
  9. Теперь найдите вашу PATHпеременную в этом новом улье.

    Вы можете найти это в HKEY_LOCAL_MACHINE\SYSTEM-old\ControlSet00x\Control\Session Manager\Environment

  10. После того, как вы закончите, отключите улей и удалять SYSTEM, SYSTEM.LOG1, SYSTEM.LOG2а несколько , .BLFи .REGTRANS-MSфайлы , которые Windows , сделали для этих файлов.

источник