Windows7でSysprep、致命的なエラー

01 - Windows7でSysprep、致命的なエラー IT
この記事は約5分で読めます。

Windows 8.1 Proを主に使っていたところに、Windows10がリリースされたせいで、Windows10のWindows7 Proダウングレード権付を購入するハメになりまして。Microsoftは、MDTとかWDS、公式でイメージデプロイツールをリリースしていますが、ディスクイメージとsysprepで配布して、GPO適用した方が時間も含めたコストが格段に低いんです。

 

そんなわけで、Windows 7を触ることになりまして、諸々のアプリケーションをインストール後にイメージ作成をし、sysprepをするところで久方ぶりに問題に再会しました。このブログに残していなかった昔の備忘録を掘り起して忘れないようにしたいので記録です。

 

スポンサーリンク

エラー

エラーはこれ。Sysprepをgeneralizeとoobeオプションで、実行した際に出現するエラー。
「コンピューターのsysprepを実行中に致命的なエラーが発生しました。」

01 - Windows7でSysprep、致命的なエラー

 

そういえば、メーカー製のPCはsysprep対策をした時期があったっけ、と思ったので、コマンドプロンプトから「slmgr -dvl」を実行してWindows猶予期限リセット可能回数を確認したところ・・・

02 - Windows7でSysprep、致命的なエラー

 

ありました。コイツだ。
というわけで対策として、以下を行います。

スポンサーリンク

対策

  • レジストリ変更
  • コマンドプロンプトからコマンド実行
  • 再起動
  • SkipRearmを指定したUnattend.xmlを作成

 

レジストリ変更

レジストリエディタ(regedit.exe)を開き、以下のキーを探します。

HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus

03 1024x526 - Windows7でSysprep、致命的なエラー

 

その中にある以下2つのキーを、それぞれ正しい値にします。

CleanupState : 2(16進数)
GeneralizationState : 7(16進数)

 

コマンドプロンプトからコマンド実行

次に、コマンドプロンプト(cmd.exe)から以下コマンドを実行します。データべースの分散トランザクションサポートとか、細かい話は割愛します。

 

04 - Windows7でSysprep、致命的なエラー

msdtc -uninstall
msdtc -install

 

再起動

ちゃんと、優しく再起動してあげてください。

もう少しです。

 

SkipRearmを指定したUnattend.xmlを作成

sysprepにその詳細設定ファイルとなる「Unattend.xml」ファイルの最低限(64bit版)を指定。必要なのは、「<SkipRearm>1</SkipRearm>」なのですけれど、お作法に則るとこうなります。

<?xml version=”1.0″ encoding=”utf-8″?>
<unattend xmlns=”urn:schemas-microsoft-com:unattend”>
<settings pass=”generalize”>
<component name=”Microsoft-Windows-PnpSysprep” 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”>
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
</component>
<component name=”Microsoft-Windows-Security-Licensing-SLC” 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”>
<SkipRearm>1</SkipRearm>
</component>
</settings>
</unattend>

もし、(多分使うことはあまりないだろうけれど)、Windows 7 Pro 32bit版に適用したいという場合には、「processorArchitecture=”amd64″」を「processorArchitecture=”x86″」にすれば使いまわせます。

 

こんなことを気にせずsysprepが出来るようになったから、Windows 8は楽だったんだけれどなぁ。(ボソッ)

 

スポンサーリンク

batファイルで起動

それと別途、面倒なのでbatファイルからsysprepを起動できるように、ここでは「Start_Sysprep.bat」として以下の内容で作ります。

sysprep /generalize /oobe /shutdown /unattend:C:\Windows\System32\Sysprep\Unattend.xml

 

batって、カレントワーキングディレクトリで実行するので、パスが通っていなくてUnattendファイルを相対パスで指定するととそんなファイルないよとか言い始めるので、念のため。

 

上記で作成した「Start_Sysprep.bat」と「Unattend.xml」を「C:\Windows\System32\Sysprep」にコピーします。

 

以上、仕上げは「Start_Sysprep.bat」を実行。

 

これでおけ。

タイトルとURLをコピーしました