Windows7系統目錄遷移:Users,Progr…
微軟設計了比如:我的文檔、我的OOXX,之類的東西,在WIN7下面更連遊戲、下載等等目錄都設計好了,我也很乖巧的把各種文件都分門別類的放進去了。
同時也很厲害的設計在了“%HOMEDRIVE%”裏面,各種的資料,這種軟件的配置就全給放進去了
在XP的時候對於C盤的要求還不是那麽大,但是在win7下就顯的捉襟見肘了
再格式化,重裝系統就全沒了,囧,就也是必須移動出來的第二個理由
以前只是自己挪挪地兒,小改一下註冊表,今天無意中參考了幾篇文章,那搞的才是個全面啊,在膜拜只後就全給做筆記了,忽忽,先上牛人原文的傳送門
首先,不管你要怎麽挪,請記住挪壞了我不會負責。其次,確定系統是剛剛安裝好的,這樣比較不會出現意外,也更有效優化,確定是用 Administrator 登錄。
移動Program Files目錄到非系統盤
第一步,復制 Program Files 目錄
不能直接用資源管理器復制,我們需要保留此目錄的所有權限設置,(以前我就是直接在資源管理器面弄到,現在嚴重懷疑,我的機器時不時的抽風是不是和這個有關)假設要從 C 盤移動到 D 盤:
xcopy "C:\Program Files" "D:\Program Files\" /E /H /K /X /Y /C第二步,修改註冊表
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
"CommonFilesDir"="D:\\Program Files\\Common Files"
第三步,重啟
註意不是註銷,因為 Program Files 裏有很多文件是被系統服務使用的,註銷並不能重啟服務。
第四步,關閉 iphlpsvc 服務
因為它使用到了 “C:\Program Files\Internet Explorer\sqmapi.dll”:
net stop iphlpsvc第五步,刪除 “C:\Program Files” 目錄
要先取得所有權,添加改寫權限後才可以刪除。
第六步,創建 Junction 文件夾映射
把 “C:\Program Files” 指向 “D:\Program Files”,這是為了防止一些硬編碼的 SB 程序不由分說地往 “C:\Program Files” 裏寫東西。
mklink /J "C:\Program Files" "D:\Program Files"至此,Program Files目錄的轉移就結束了,與還不太放心的話,可以去註冊表找找“C:\Program Files”這個字串符,手動改改了,呵呵,改壞了就是你人品問題了。
移動ProgramData 目錄到非系統盤
第一步,復制 ProgramData 目錄
假設要從 C 盤移動到 D 盤:
xcopy C:\ProgramData D:\ProgramData\ /E /H /K /X /Y /B /C第二步,修改註冊表
:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList] 下的 ProgramData 數據原為 %SystemDrive%\ProgramData,改為 D:\ProgramData。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] 下的 “Common Administrative Tools”、”Common AppData”、”Common Programs”、”Common Startup”、”OEM Links”、”Common Templates” 等值的數據也相應地改改。如下:
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Common Start Menu"="D:\\ProgramData\\Microsoft\\Windows\\Start Menu"
"Common Programs"="D:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs"
"Common Administrative Tools"="D:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Administrative Tools"
"Common Startup"="D:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"
"OEM Links"="D:\\ProgramData\\OEM Links"
"Common Templates"="D:\\ProgramData\\Microsoft\\Windows\\Templates"
"Common AppData"="D:\\ProgramData"
第三步,重啟
註銷的話需要多加 net stop iphlpsvc 和 net stop BITS。
第四步,刪除 C:\ProgramData 目錄
其中有兩個無法直接刪除的文件要先取得所有權,添加改寫權限後才可以刪除。
第五步,創建 Junction 文件夾映射
把 C:\ProgramData 指向 D:\ProgramData,這是為了防止一些硬編碼的程序不由分說地往 “C:\ProgramData” 裏寫東西。
mklink /J C:\ProgramData D:\ProgramData移動Users 目錄到非系統盤
第一步,修改註冊表
和前面不同,因為 Users 目錄下有一些系統占用的文件,復制不了。如果你和我一樣有雙系統或者用 U 盤啟動 WinPE,那可以試試,不必按照這裏寫出的步驟做。但如果你沒有相應的設備的話,那就繼續SBS吧,先修改註冊表,再復制文件。假設要移動到 E 盤:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList] 下的 Default、ProfilesDirectory、Public 三個值的數據改一下,把盤符都改為 E:。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-3843801140-3458922274-3296897442-500] 下的 ProfileImagePath 數據改為 E:\Users\Administrator。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] 下的 “Common Desktop”、”Common Documents”、CommonMusic、CommonPictures、CommonVideo 五個值的數據把盤符都改為 E:。
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] 下的值看到數據中有 C:\Users 的都改為 E:\Users。
第二步,註銷,重新登錄
會發現一些用戶配置沒正確加載的問題,但不用理會。
第三步,復制文件
xcopy C:\Users E:\Users\ /E /H /K /X /Y /B /C第四步,註銷,重新登錄
在第二步看到的問題,解決了。
第五步,刪除 “E:\Users\Default User” 目錄
因為這個目錄被 xcopy 復制錯誤,重新創建:
mklink /J "E:\Users\Default User" E:\Users\Default然後對照 “C:\Users\Default User” 的權限設置,把 “E:\Users\Default User” 設置成和它一樣:
cacls "E:\Users\Default User" /S:"D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA)"第六步,刪除 C:\Users 目錄
直接用資源管理器刪除,很順利。
第七步,創建映射
mklink /J C:\Users E:\User高級移動
好吧,我承認前面的你都移動了,其實系統還是會添加幾個G文件區C盤,我們前面只是移動了應用軟件的默認安裝位置,和一些個人數據
這裏要說的是,對於像 %SystemRoot%\Installer、%SystemRoot%\SoftwareDistribution 這類“頑固”的文件夾,不能通過修改註冊表來定義路徑的設置!
我們要先準備一個工具Junction傳送門
這兩個文件夾比較“常用”,MSI 安裝程序會把安裝文件緩存到 %SystemRoot%\Installer,比如您裝了 VS,會發現這個文件夾大了很多;而 %SystemRoot%\SoftwareDistribution 是自動更新服務用來緩存更新程序的。我的這兩個文件夾加起來就有2GB多,惆悵
假設要把 %SystemRoot%\Installer 修改為 E:\SysDir\Installer,
首先通過資源管理器把 C:\WINDOWS\Installer 文件夾剪切到 E:\SysDir\ 下(這個文件夾是隱藏的)
然後在命令提示符下輸入:
junction C:\WINDOWS\Installer E:\SysDir\Installer對於 SoftwareDistribution 要多一步,要先停止自動更新服務:
net stop wuauserv後面步驟和 Installer 的一樣,剪切 -> Junction:
junction C:\WINDOWS\SoftwareDistribution E:\SysDir\SoftwareDistribution這樣做完之後 C:\WINDOWS\ 下的 Installer 和 SoftwareDistribution 其實只是文件夾的映射,對他們的寫入操作全部都會映射到 D:\SysDir\ 下的對應文件夾。本質上就是把E盤的空間拿到 C 盤使用,減少對 C 盤的寫入。
Windows7系統目錄遷移:Users,Progr…