Windows 10
 Computer >> コンピューター >  >> システム >> Windows 10

アップグレード済みWindowsでSysprepを実行する方法|エラーの原因とレジストリによる解決策

System Center Configuration Manager(SCCM)2012 R2を使ってWindows 10を展開するためのリファレンスイメージを作成しようとした際、インストール済みのシステムでSysprepを実行すると、奇妙なエラーに遭遇しました。Sysprepを起動すると、次のエラーが表示されて処理が中断されてしまうのです。

Sysprep実行時に発生したエラーの内容

Sysprep実行時に表示されたエラーメッセージは以下のとおりです。

Sysprep was not able to validate your Windows installation. Review the log file at %WINDIR%\System32\Sysprep\Panther\setupact.log for details. After resolving the issue, use Sysprep to validate your installation again.

(訳:「Windowsのインストールを検証できませんでした。詳細については、%WINDIR%\System32\Sysprep\Panther\setupact.log のログファイルを確認してください。問題を解決した後、Sysprepを使用してインストールを再び検証してください。」)

メッセージの指示に従い、Sysprepのログファイル setupact.log(%WINDIR%\System32\Sysprep\Panther フォルダー内にあります)を開いて、エラーの原因を分析してみましょう。

2016-10-23 13:12:51, Error [0x0f0036] SYSPRP spopk.dll:: Sysprep will not run on an upgraded OS. You can only run Sysprep on a custom (clean) install version of Windows.

ログには「SysprepはアップグレードされたOSでは実行できない。カスタム(クリーン)インストール版のWindowsでのみ実行できる」と明確に記録されています。

エラーの原因:アップグレード環境でのSysprepは非サポート

このエラーは、以前のWindowsバージョンからアップグレードしたシステムではSysPrepを実行できないことを示しています。今回のケースもまさにこれで、対象マシンはWindows 7からWindows 10へアップグレードした環境でした。

実際、マイクロソフトのナレッジベース記事KB828287には、次のように記載されています。

マイクロソフトは、アップグレードされたインストール環境のイメージを作成する目的でSysprepを使用することをサポートしていません(サービスパックの適用はアップグレードとは見なされません)。

つまり、SysPrepが公式にサポートしているのはクリーンインストール環境のみです。となると、「システムを最初から再インストールし直すしかないのか?」という疑問が湧いてきますよね。

解決策:レジストリでアップグレードマークを削除する

結論から言えば、再インストールは不要です。Process Monitorでプロセスを「sysprep.exe」に絞り込み、クリーンインストール版とアップグレード版のWindows 10の挙動を比較した結果、SysPrepが起動時にチェックする「システムがクリーンインストールかアップグレードかを判定するためのレジストリキー」の一覧を特定することができました。

以下の手順を実行することで、SysPrepがチェックする「アップグレード済みシステムのマーク」をWindows 10から削除できます(他のWindowsバージョンでも同様に機能します)。なお、Windows 11へのアップグレード環境でも同様の手法が有効とされています。

重要:ここで紹介する方法はマイクロソフトが公式にサポートしているものではなく、この方法で作成したシステムイメージで問題が発生しないことを保証するものではありません。必ず事前にバックアップやスナップショットを取得し、検証環境で十分にテストを行ったうえで使用してください。

  • レジストリエディター(regedit.exe)を開きます。
  • HKEY_LOCAL_MACHINE\SYSTEM\Setup\ へ移動します。
  • Upgrade キー(存在する場合)と、値の名前が Upgrade であるレジストリ値を削除します。
  • HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus キーの CleanupState の値を 7 に設定します。
  • コンピューターを再起動し、再度SysPrepを実行します。

補足:Modernアプリ(Microsoft Storeアプリ)の削除が必要なケース

Windows 10の場合、Sysprepを正常に動作させるには、ユーザーがMicrosoft Storeから個別にインストールした非標準のModernアプリ(プロビジョニングモード以外のもの)をあらかじめすべて削除しておく必要がありました。

対応方法としては、主に次の3つの選択肢があります。

  • すべてのユーザープロファイルを削除する(状況が許す場合)
  • 全ユーザーに対してMetro(Modern)アプリを完全にアンインストールする(推奨されません)
  • 該当するアプリを手動でアンインストールする(おすすめ)

手動でのアンインストールは、PowerShellを使って以下のように行います。

まず、すべてのユーザープロファイルにインストールされているModernアプリの一覧を取得します(必要なのは Installed ステータスのパッケージのみです)。

Get-AppxPackage -AllUser | Format-List -Property PackageFullName,PackageUserInformation

次に、それらを1つずつアンインストールしていきます。

Remove-AppxPackage -Package <packagefullname>

プロビジョニングパッケージとして削除する場合は、こちらのコマンドを使用します。

Remove-AppxProvisionedPackage -Online -PackageName <packagefullname>

これらの手順を完了させたうえで、Sysprepを /generalize /oobe /shutdown オプション付きで再実行すれば、アップグレード済みのWindows 10環境でも一般化(ジェネラライズ)処理が通るようになり、SCCMなどで利用できるリファレンスイメージを作成できるようになります。

  1. MacでWindowsを使う方法|Parallels・Boot Campなど5つの手段を徹底比較

    Macは安全性と快適な操作性で知られています。しかし、「Windows専用のソフトウェアを使いたいから」という理由で、Windowsからの乗り換えをためらっている方も多いのではないでしょうか。 実は、その心配は不要です。仮想マシン(Virtual Machine)などの仕組みを活用すれば、1台のMac上でmacOSとWindowsの両方を利用することができます。再起動なしにOSを切り替えられる方法もあれば、ネイティブ性能でWindowsを動かせる方法もあります。 この記事では、MacでWindowsを実行する代表的な5つの方法(Parallels Desktop、VMware Fusion、B

  2. Windows 11でAndroidアプリを実行する方法|Amazon Appstoreの導入手順とサイドロード術

    Windows 11のPCでもAndroidアプリが使えたら便利だと思いませんか?その夢はついに現実になりました。Windows 11では、サードパーティ製ソフトやエミュレーターを別途用意しなくても、Androidアプリを簡単に実行できます。鍵となるのが「Amazon Appstore」。Microsoft Storeからインストールすれば、厳選されたカタログの中からお気に入りのアプリやゲームを閲覧・インストールできるようになります。ただし注意点として、この機能はリリース当初、米国でのみサポートされていました。 スマートフォンだけでなくWindows PCでもアプリを活用したい——これは多く