題 有沒有辦法恢復環境變量?


我最近裝了 OpenSSH的 在我的Windows 7機器上。安裝覆蓋了我的Path變量並清除了我在命令行中使用的所有其他路徑。我可能在那裡有50條路徑,它將永遠記住它們。無論如何都要在安裝之前恢復這個變量?


4
2017-08-03 13:47


起源




答案:


您的環境位於註冊表中,可能會保存為 系統還原點。您可以嘗試恢復到之前的還原點,但它可能還不僅僅是您安裝的OpenSSH(即,您可能必須重新安裝其他軟件)。


15
2017-08-03 13:52



+1 For System Restore是唯一明智的工具。此外,我相信使用系統還原,您可以在復制出所需信息後“前滾”到還原點,因此最佳過程可能是創建新還原點,回滾,複製路徑,然後再次前滾,這應該是結果對您的系統進行一些真正的改變。 - Mokubai♦
+1“前滾”建議。非常好主意。 - Fran
@Fran我正在給你一個upvote,因為我也在寫一個基於從Registry中提取PATH的答案,我不希望你覺得我偷了你的答案。 (雖然,如果我吹噓,我的答案是優越的!)


如果您沒有任何還原點或者您不想通過該過程,Microsoft提供了一個名為的工具 Process Explorer 您可以在創建流程時檢查路徑。

如果您重新啟動計算機,則此方法將不起作用,因為它取決於PATH變量更改之前運行的進程。

  1. 不要重新啟動機器
  2. 下載 Process Explorer 由微軟
  3. 將其解壓縮並運行它
  4. 雙擊PATH丟失之前已啟動的其中一個進程
  5. 選擇“環境”選項卡
  6. 找到PATH並複制它(它也會復制變量名,所以你需要把它拿出來)
  7. 將其粘貼到PATH變量上。

應該這樣做。 請記住,這些PATH變量已解析,即路徑值中不會有任何%VARIABLE_HERE%。


2
2017-09-22 13:01



聰明的回應!它依賴於以下事實:一旦啟動應用程序,它就會創建PATH變量的副本並保留它直到應用程序關閉。


PATH 環境變量存儲在Windows註冊表中:

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

...在 Path 參數。 (“ControlSet00x”中的“x”是一個數字。)

如果將註冊表作為系統還原檢查點的一部分進行備份,則可以提取備份副本 無需將系統恢復到以前的檢查點! 去做這個:

  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. 選擇File-> Load Hive ...
  8. 給出提取的地址 SYSTEM 文件,然後給出一個蜂巢名稱,如 SYSTEM-old
  9. 現在,找到你的 PATH 這個新蜂巢中的變量。

    你可以找到它 HKEY_LOCAL_MACHINE\SYSTEM-old\ControlSet00x\Control\Session Manager\Environment

  10. 完成後,卸載配置單元並刪除 SYSTEMSYSTEM.LOG1SYSTEM.LOG2 幾個 .BLF 和 .REGTRANS-MS Windows為這些文件創建的文件。

0
2018-03-17 09:25