以前、Windows Server 2016でSysprepした際に、変更したドライブレターは変更されないと思っていたのですが、同僚がSysprep後にDドライブが変更されたという話をしていて気になったので調べてみました。
情報元はマイクロソフトのフォーラムです。
sysprepの仕様について
以下は質問内容の抜粋です。
Windows2003R2とWindows2008R2にてイメージ展開のためsysprepを実行しました。
複数ドライブレターにて実行しましたが、Windows2003はドライブ文字は保持され、Windows2008ではCドライブ以外は変更されました。
Windows2008(Vista)には、ドライブレターが変更される記載があったのですが、バージョンにより違いがあるのでしょうか?
Windows ServerのバージョンによってSysprep後の動作が変わるというものです。確かにSysprepでどこが初期化されるのかは知っておく必要があります。
また、以下のように追記があります。
その後テストしましたが、Windows2003にてWindows2003のsysprep・Windows2008にてWindows2008のsysprepを利用してテストしましたが、どちらもドライブレターが変更されました。
仕様としての違いは無いようですので、質問を以下のように変更させていただければと思います。
Windows2008にてsysprepをかけてドライブレターを維持するオプションのようなものがあるのでしょうか?
Windows2008にて、C(system)/D(ソフト)/E(データ)/F(ログ)/G(DVD-ROM)にて設定した後に、同じ構成のサーバを複製したいと考えております。
ちょっと古い情報にはなりますが、ドライブレターは変更されるということになります。
続いて対処法として紹介された情報です。
Windows Server 2008 R2 drive letter changes after Sysprep
このドライブ文字の問題の回避策があります。MSサポートに連絡し(昨年末)、ドライブ文字の変更で動作を確認した後、これは仕様によるものであると言われました。うーん...しかし、彼らは私に次のような回避策を与えました:
1。ドライブCのアクティブなオペレーティングシステムからMountedDevices情報を抽出します:(つまり、HKLM \ SYSTEM \ MountedDevicesをregedit経由でエクスポートします)
2。のSYSTEMレジストリハイブをロードしますドライブDからの「syspreped」Win2008R2:3.MountedDevices
サブキーをWin2008R2のSYSTEMハイブにインポートします。4。Win2008R2を
起動します。
通常、値「\ DosDevices \ D:」のみをインポートし、サブキー「MountedDevices」に他の値を取り込むだけで十分です。他の情報は、Win2008R2のドライブ検出によって作成されます。
これは完璧に機能します。私はすでにこれを自動インフラストラクチャに統合しており、これまで問題は見られませんでした。
変更されたBCDStoreエントリの問題はこれでは解決されませんが、私の目には重要ではありません(最初はブートエントリを修正するのは簡単で、次にsysprepを実行するホストでのみ発生します)。
情報が古いのですが、Windows Server 2016などでSysprepでドライブレターが変更されるという情報が見つからないのです。もしかすると最近のOSはドライブレターが維持されるのが正解かもしれません。