Удалены переменные системного пути
Я писал командный файл, который должен был автоматически настроить компьютер для получения удаленных команд «psexec». К сожалению, я не обратил внимания на то, что писал, и написал эту команду, а затем запустил ее:
setx /M Path "C:\Windows\System32\PSTools"
Вы можете себе представить, что произошло... Я стер все остальные переменные пути! Затем, в панике, неправильно прочитав интернет-форум, я перезагрузил компьютер. У меня не было ни резервных копий, ни точек сохранения, и, очевидно, я не открывал сеанс cmd или powershell. Мои вопросы:
- Есть ли еще способ восстановить переменные пути, которые я потерял, или они исчезли навсегда?
- Если они исчезли, есть ли у меня способ «переписать» их или просто получить список недостающих?
Я знаю, что мои вопросы покажутся глупыми опытным программистам, и я прошу прощения за это, но на самом деле я начал этот проект почти с нулевыми навыками в 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
вам следует перезагрузить ОС, особенно если раньше это значение было неправильным.