先日、久々に自宅の仮想環境(Hyper-V)で、Windows10関連の動作検証を行おうと思い、あらかじめ作成しておいた、Windows10のHyper-Vエクスポートファイルより、仮想マシンイメージを読み込みました。
今回、複数台のWindows10仮想ゲストが必要だった為、起動したWindows10仮想ゲストに対して、「Sysprep」をかけ、OS上の固有情報を削除しようとしたところ、これがうまくいかず、かなり試行錯誤してしまいました。
Windows7の頃は、Sysprepではほとんど引っかかった事がなかった為、解決までかなり時間がかかってしまいましたので、ここはメモとして残しておこうと思い、対応した経緯を以下に記載していきます。
【エラー1】Sysprepが実行出来ない
1.Windows10のC:\Windows\system32\sysprepフォルダより「Sysprep」を実行します

2.固有情報を削除したいので、「一般化する」にチェックを入れて「OK」をクリックします

すると、以下表示がでました
初めて見るポップアップ

ポップアップ内に記載があるように、sysprepのエラーログファイルを確認してみたところ
7行目に怪しいログがありました


小さくて読みづらいですが、英語の文を読むと
「OSをアップグレードしたから、Sysprepをかけるには、OSをクリーンインストールしないと駄目ですよ」と
「え~っ」そんな事知りませんでしたし、ただ、そんな事をしている時間もありません
インターネットで皆さんの力を借りると、対処方法を記載しているサイトを見つけました。書かれた方のお名前はわかりませんが、参考になり、大変ありがとうございました!
引用元:dev/blog
- HKEY_LOCAL_MACHINE\SYSTEM\Setupにある、Upgradeキーを削除する。
- HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatusにある、CleanupStateキーの値を、7に変更する。
3.Upgradeキーを削除します

4.CleanupStateキーの値を7へ変更

5.再起動を行い、再度「Sysprep」を実行します
今度は進みました

喜びもつかの間、今度は「致命的なエラー」、え~っ、なんでだ。

やっぱり、Windowsはそんな甘くはないですね。
【エラー2】Sysprepで「致命的なエラー」
再度、「setuperr.log」を確認すると、以下エラーが出力されてました
"C:\Windows\System32\Sysprep\Panther\setuperr.log"
[0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn't update the recorded state, dwRet = 0x1f
[0x0f00ae] SYSPRP WinMain:Hit failure while processing sysprep cleanup external providers; hr = 0x8007001f
私の知識では限界ですので、再度皆さんの力を借ります
すると以下サイトで同様のエラー修復してましたので、またまた参考にさせていただきました。助かりました!
1.2つのレジストリを下記の内容に編集します。
HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\GeneralizationState\CleanupState:2
HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\GeneralizationState\GeneralizationState:72.コマンドプロンプトで下記の2つのコマンドを実行します。
msdtc –uninstall
msdtc –install3.再起動します。
引用元:WIN1@Codename
1.2つのレジストリ内容を変更します
HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\GeneralizationState\CleanupState:2
HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\GeneralizationState\GeneralizationState:7
確認したところ、「CleanupState」キーは2だったのでそのまま、「GeneralizationState」キーが違っていたので、7に変更します


2.変更したら、以下コマンドを打ちます
msdtc –uninstall
msdtc –install

再起動します

無事、sysprepを完了する事ができました!!
コメント