Sysprep実行時のトラブルメモ
Windows 11の端末でSysprepを実施したときに詰まったことをメモしておきます。
目次
Sysprepの実行
環境
- Windows 11 Pro 22H2 build 22621.3007
実行コマンド
- 管理者PowerShellで実行
C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe
発生するトラブル
Sysprep実行すると以下のように表示されて実行が失敗します。
Sysprep で Windows のインストールを検証できませんでした。詳細については、%WINDIR%\System32\Sysprep\Panther\setupact.log にあるログ ファイルを確認してください。問題を解決してから、Sysprep を使用してインストールを再度検証してください。
ログの確認
上記のメッセージにあるログファイルを見たいところですが、トラブル解決のためにはsetuperr.log
を参照した方が良さそうです。
ログファイルを開くためには管理者権限が必要なので、エクスプローラーからファイルを開くのは面倒です。
Sysprepのために既に開いている管理者PowerShellからnotepad
を実行して、以下のようにメモ帳からファイルを開く方が容易です。
ちなみにSysprepを実行する度にログを出力しますが、その度にメモ帳でファイルを開き直してください。
表示されるログに合わせた解決方法
Reserved storage is in use
2024-01-27 12:34:27, Error SYSPRP Sysprep_Clean_Validate_Opk: Audit mode cannot be turned on if reserved storage is in use. An update or servicing operation may be using reserved storage.; hr = 0x800F0975 2024-01-27 12:34:27, Error SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'Sysprep_Clean_Validate_Opk' from C:\Windows\System32\spopk.dll; dwRet = 0x975 2024-01-27 12:34:27, Error SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Cleanup.xml; dwRet = 0x975 2024-01-27 12:34:27, Error SYSPRP RunPlatformActions:Failed while validating Sysprep session actions; dwRet = 0x975 2024-01-27 12:34:27, Error [0x0f0070] SYSPRP RunDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = 0x975 2024-01-27 12:34:27, Error [0x0f00d8] SYSPRP WinMain:Hit failure while pre-validate sysprep cleanup internal providers; hr = 0x80070975
解決手順
レジストリエディタを開き、以下のキーを表示します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ReserveManager
ActiveScenario
のDWORD値を0に設定します。
以上でレジストリエディタでの作業は終了です。
管理者PowerShellで以下のコマンドを実行します。
> DISM.exe /Online /Set-ReservedStorageState /State:Disabled
ValidateBitLockerState
2024-01-27 13:29:46, Error SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'ValidateBitLockerState' from C:\Windows\System32\BdeSysprep.dll; dwRet = 0x80310039 2024-01-27 13:29:46, Error SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x80310039 2024-01-27 13:29:46, Error SYSPRP RunPlatformActions:Failed while validating Sysprep session actions; dwRet = 0x80310039 2024-01-27 13:29:46, Error [0x0f0070] SYSPRP RunDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = 0x80310039 2024-01-27 13:29:46, Error [0x0f00d8] SYSPRP WinMain:Hit failure while pre-validate sysprep generalize internal providers; hr = 0x80310039
解決手順
BitLockerドライブの暗号化ウィンドウを開き、BitLockerを無効にします。
以下のように表示されればBitLockerが無効になっています。
Package xxx was installed for a user, but not provisioned for all users.
2024-01-27 13:33:26, Error SYSPRP Package Microsoft.Winget.Platform.Source_2023.1102.1838.719_neutral__8wekyb3d8bbwe was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image. 2024-01-27 13:33:26, Error SYSPRP Failed to remove apps for the current user: 0x80073cf2. 2024-01-27 13:33:26, Error SYSPRP Exit code of RemoveAllApps thread was 0x3cf2. 2024-01-27 13:33:26, Error SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'SysprepGeneralizeValidate' from C:\Windows\System32\AppxSysprep.dll; dwRet = 0x3cf2 2024-01-27 13:33:26, Error SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x3cf2 2024-01-27 13:33:26, Error SYSPRP RunPlatformActions:Failed while validating Sysprep session actions; dwRet = 0x3cf2 2024-01-27 13:33:26, Error [0x0f0070] SYSPRP RunDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = 0x3cf2 2024-01-27 13:33:26, Error [0x0f00d8] SYSPRP WinMain:Hit failure while pre-validate sysprep generalize internal providers; hr = 0x80073cf2
解決手順
一部のユーザに導入されているストアアプリを削除します。
Sysprepを実行する度に1つしかパッケージが表示されないので、何度か実行してエラーが全て解消するまでストアアプリを削除します。
上記の表示例の場合、Microsoft.Winget.Platform.Source_2023.1102.1838.719_neutral__8wekyb3d8bbwe
がパッケージ名になります。
アプリ名はこのときMicrosoft.Winget.Platform.Source
のようにアンダースコア(_)の手前までです。
Microsoft.Winget.Platform.Source
というアプリを削除する場合、管理者PowerShellで以下のコマンドを実行します。
> Get-AppxPackage -AllUsers Microsoft.Winget.Platform.Source* | Remove-AppxPackage -AllUsers
※アプリ名の後ろに*
をつけるようにしてください。
無事にSysprepを実行できるようになる
上記のようにエラーを全て解決していくと、Sysprepが実行出来るようになります。
正常に動き始めると、以下のようなダイアログが表示されます。
最近のコメント