2012年10月11日 星期四

如何在全新安裝Windows 7時(Windows 8也適用),指定"非預設"的「使用者設定檔」存放路徑


如果要達到這個需求,依照正常步驟得先做個unattend installation file重新打包Windows安裝光碟,甚至還得動用到Windows Installation Kit,這實在太麻煩了。現在有一個小技巧,不用大費周章花幾個小時搞這些東西,只要幾個步驟就能做到。 

以下場景有可能用到這個功能:
  1. 新增了一個SSD硬碟,不想把所有東西都塞在容量不太大的SSD上
  2. 為了怕中毒或系統有問題無法開機時還要忙著拆硬碟救C:上的使用者資料,放在其他地方可以瀟灑重灌
  3. 使用者設定檔有特殊需求需要隨身帶著走放在隨身碟上
跟著我一步一步做保證成功移動預設資料夾路徑。

首先新增一個純文字檔,命名為Folder.xml,並且填入以下內容(粗體字內容可依需求更動);
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <FolderLocations>
                <ProfilesDirectory>d:\Users</ProfilesDirectory>
                <ProgramData>d:\ProgramData</ProgramData>

            </FolderLocations>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:h:/sources/install.wim#Windows 7 ULTIMATE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
最後將做好的Folder.xml存放在隨身碟上,以備後續安裝使用。

然後一如往常進行正常Windows 7安裝步驟。

遇到以下畫面時停下你的腳步,按下"Ctrl+Shift+F3"。

接下來會重新開機進入以下畫面。

最後會停在以下畫面,表示系統已經進入"稽核模式"。
在稽核模式中,只要不去觸發"系統準備工具"裡的選項,直接關閉系統準備工具,不論重開機幾次都會停留在稽核模式中,所以你可以做任何與"某使用者"無關的事情(安裝軟體、驅動程式、系統設定...)。

依照本範例,預計將使用者設定檔存放在D:,所以趁這時候先格式化D:如下圖:

接下來請插上隨身碟,把Folder.xml複製到D:(不複製留在隨身碟上也行,只是待會關鍵命令要跟著修改),如下圖:

準備好Folder.xml後,請以系統管理員身份執行"命令提示字元"(DOS視窗),如下圖:

先輸入cd c:\windows\system32\sysprep來變更路徑,然後輸入sysprep.exe /audit /reboot /unattend:d:\folder.xm進行目錄設定(若Folder.xml放在隨身碟,請修改d:為你的隨身碟代號),如下圖:

當命令生效後,會出現處理中的對話方塊,如下圖:

接下來會自動重新開機回到稽核模式,這時可以結束稽核模式了,請依照下圖畫面進行選擇後,按下確定即可退出稽核模式重開機(理論上應該不用選,直接按確定即可)。

重開機後又會回到要求輸入使用者名稱與電腦名稱的畫面,如下圖:

接下來請依照系統提示選擇選項後,進入安裝完成畫面,如下圖:

安裝完成後,請再重開一次取消任何隱藏檔案功能後,打開D:,你會發現出現了原本應該只存在C:中的"使用者"及"ProgramData"資料夾,如下圖:

接下來把殘留在C:的ProgramData搬移到D:或直接刪除ProgramData也行,如下圖:

為了怕腦殘工程師寫HardCode直接存取已經不存在的C:\ProgramData造成問題,得要做個目錄連結防止災難發生。請用系統管理員身份執行命令提示字元,並輸入mklink /j c:\ProgramData d:\ProgramData,將會看到連結建立完成訊息,如下圖:

這時用檔案總管檢查C:會發現多出來一個ProgramData的連結,如下圖:

這時已經大功告成了,若要確認是否成功,可以在桌面上新增一個資料夾,然後打開D:\users\使用者名\desktop看看資料夾是否有被建立,如下圖:

今天大家放假我上班,其實也是閒閒的,趁前兩天因意外導致系統無法開機後的災難復原印象還深刻時寫下來,相信日後有這麼一天你我都還會需要參考這篇文。