Удалены переменные системного пути

Я писал командный файл, который должен был автоматически настроить компьютер для получения удаленных команд «psexec». К сожалению, я не обратил внимания на то, что писал, и написал эту команду, а затем запустил ее:

      setx /M Path "C:\Windows\System32\PSTools"

Вы можете себе представить, что произошло... Я стер все остальные переменные пути! Затем, в панике, неправильно прочитав интернет-форум, я перезагрузил компьютер. У меня не было ни резервных копий, ни точек сохранения, и, очевидно, я не открывал сеанс cmd или powershell. Мои вопросы:

  1. Есть ли еще способ восстановить переменные пути, которые я потерял, или они исчезли навсегда?
  2. Если они исчезли, есть ли у меня способ «переписать» их или просто получить список недостающих?

Я знаю, что мои вопросы покажутся глупыми опытным программистам, и я прошу прощения за это, но на самом деле я начал этот проект почти с нулевыми навыками в bat, cmd и других вещах... Спасибо всем, кто поможет <3


Обновлено: Хорошо, я нашел в "C:\"папка под названием "Windows.old"Возможно ли, что внутри все еще хранятся переменные пути? Внутри этой папки в основном находятся те же папки и файлы, что и "C:\Windows"one и полон файлов «.mui», но если я выполню «расширенный запуск», компьютер скажет, что точек восстановления нет. Что я должен делать?

1 ответ

Прежде всего, переменная среды системного пути хранится в реестре по адресу:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path

У вас может быть резервная копия этого значения в разделе

      HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path

или ControlSet002 или ControlSet003, но, скорее всего, значение будет таким же, как указаноCurrentControlSet.

The Pathзначение должно иметь тип, а значение по умолчанию выглядит так:

       %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;

если у вас есть дополнительные значения, они добавляются, а иногда, к сожалению, добавляются к списку. Точки с запятой отделяют каждую запись.

Многие программы, в том числе разработанные самой Microsoft, используют неправильные команды для добавления новой записи к этому значению, и в итоге вы получаете значение типаREG_SZи значение типа:

      C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;

Хотя в большинстве случаев это работает, в других это не работает. Всегда лучше использоватьREG_EXPAND_SZтип.

После изменения этого значения с помощьюregedit.exeвам следует перезагрузить ОС, особенно если раньше это значение было неправильным.

Другие вопросы по тегам