組み込みの Windows イメージを含む Microsoft Store アプリを削除または更新した後に Sysprep が失敗する
この記事では、Microsoft Store を使用してプロビジョニングされた Microsoft Store アプリを削除または更新し、コンピューターで sysprep を実行すると発生する問題について説明します。
適用対象: Windows 10 - すべてのエディション、Windows 11
元の KB 番号: 2769827
はじめに
Sysprep は、重複、監査、顧客の配信のために Windows のインストールを準備する IT 管理者向けのツールです。 この記事のガイダンスは、サポート エージェントと IT プロフェッショナルによる使用を目的としています。 Microsoft Store アプリの使用中に問題が発生しているホーム ユーザーの場合は、「 Microsoft Store のアプリに関する問題の修正を参照してください。
Windows イメージには、いくつかの Microsoft Store アプリが組み込まれています。 これらのアプリには、メール、マップ、メッセージング、Bing、旅行、ニュースなどのアプリが含まれます。 これらのアプリは、 プロビジョニング済み アプリと呼ばれます。 プロビジョニングされたアプリはイメージでステージングされ、最初のログオン時に Windows イメージのすべてのユーザーに対してインストールされるようにスケジュールされます。 組み込みのアプリに加えて、独自の基幹業務 Microsoft Store アプリを Microsoft Store に公開しなくても、Windows イメージにサイドロードできます。 DISM.exeまたは DISM PowerShell モジュールで使用できるオンラインまたはオフラインのサービス コマンドを使用して、 Appx
パッケージをサイドロードできます。
現象
以下のようなシナリオが考えられます。
シナリオ 1
- sysprep とキャプチャするカスタム Windows 10 または Windows 11 参照コンピューターを作成しています。
- プロビジョニングされた Microsoft Store アプリ (
Appx
パッケージ) の一部をこの参照コンピューターから削除する必要があります。 dism -online /Remove-ProvisionedAppxPackage /PackageName:<packagename>
を実行して、Appx
パッケージのプロビジョニングを解除します。
このシナリオで sysprep 操作を実行すると、次のエラーで操作が失敗することがあります。
システム準備ツール 3.14
マシンの sysprep の試行中に致命的なエラーが発生しました
シナリオ 2
- 既存の Windows イメージがあり、いくつかの Microsoft Store アプリがイメージにサイドロードされています。
- サイドロードされた
Appx
パッケージの一部をイメージから削除し、さらにカスタマイズする必要があります。 - 参照コンピューターを起動し、次のいずれかの PowerShell コマンドを実行して、
Appx
パッケージのプロビジョニングを削除します。Remove-AppxProvisionedPackage -PackageName <packagename>
Remove-ProvisionedAppxPackage -PackageName <packagename>
このシナリオで sysprep 操作を実行すると、次のエラーで操作が失敗することがあります。
システム準備ツール 3.14
マシンの sysprep の試行中に致命的なエラーが発生しました
シナリオ 3
- Windows 10 または Windows 11 の参照イメージを作成しています。
- Microsoft Store に接続し、Microsoft Store を使用して組み込みの Microsoft Store アプリを更新します。
このシナリオで sysprep 操作を実行すると、次のエラーで操作が失敗することがあります。
システム準備ツール 3.14 コンピューターを sysprep しようとしたときに致命的なエラーが発生しました
さらに、SetupErr.logでは、次のエラー エントリが表示される場合があります。
<Date><Time>、エラー SYSPRP パッケージ <PackageFullName> がユーザーに対してインストールされましたが、すべてのユーザーに対してプロビジョニングされたわけではありません。 このパッケージは sysprep イメージで正しく機能しません。
<Date><Time>,エラー SYSPRP failed to remove apps for the current user: 0x80073cf2.
<Date><Time>, Error SYSPRP Exit code of RemoveAllApps thread was was 0x3cf2.
<Date><Time>, Error [0x0f0082] SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'SysprepGeneralize' from C:\Windows\System32\AppxSysprep.dll; dwRet = 0x3cf2
<Date><Time>, Error SYSPRP ActionPlatform::ExecuteAction: Error in executing action; dwRet = 0x3cf2
<Date><Time>,Error SYSPRP ActionPlatform::ExecuteActionList: Error in execute actions; dwRet = 0x3cf2
<Date><Time>、エラー SYSPRP SysprepSession::Execute: C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x3cf2
<Date><Time>、エラー SYSPRP RunPlatformActions:Failed while executing SysprepSession actions; dwRet = 0x3cf2
<Date><Time>, Error [0x0f0070] SYSPRP RunExternalDlls:レジストリ sysprep DLL の実行中にエラーが発生し、sysprep の実行が停止しました。 dwRet = 0x3cf2
<Date><Time>, Error [0x0f00a8] SYSPRP WinMain:Hit failure while processing sysprep generalize internal providers; hr = 0x80073cf2
原因
Sysprep には、 Appx
パッケージをクリーンアップし、イメージを一般化するために Windows に追加されたプロバイダーが追加されています。 プロバイダーは、 Appx
パッケージがユーザーごとのパッケージまたはすべてのユーザー プロビジョニング パッケージである場合にのみ機能します。
- ユーザーごとのパッケージ は、
Appx
パッケージが特定のユーザー アカウントに対してインストールされ、コンピューターの他のユーザーが使用できないようにすることを意味します。 - すべてのユーザー パッケージ は、このイメージを使用するすべてのユーザーがアプリにアクセスできるように、
Appx
がイメージにプロビジョニングされていることを意味します。
イメージにプロビジョニングされているすべてのユーザー パッケージがイメージから手動でプロビジョニング解除されたが、特定のユーザーに対して削除されていない場合、プロバイダーは sysprep 中にこのパッケージをクリーンアップするときにエラーが発生します。 また、イメージにプロビジョニングされた全ユーザー パッケージがこの参照コンピューターのユーザーの 1 人によって更新された場合も、プロバイダーは失敗します。
解決方法
この問題を解決するには、sysprep を実行しているユーザーのパッケージを削除し、プロビジョニングも削除します。 これを行うには、以下の手順を実行します。
Note
Microsoft Store がアプリを更新できないようにするには、イメージを作成する前に、インターネット接続を切断するか、監査モードで自動更新を無効にします。
次の PowerShell コマンドレットを実行します。
Import-Module Appx Import-Module Dism Get-AppxPackage -AllUsers | Where PublisherId -eq 8wekyb3d8bbwe | Format-List -Property PackageFullName,PackageUserInformation
Note
- この最後のコマンドレットの出力で、パッケージがインストール済みとして表示されているユーザーを確認します。 参照コンピューターからこれらのユーザー アカウントを削除するか、これらのユーザー アカウントを使用してコンピューターにログオンします。 次に、手順 2 でコマンドレットを実行して、
Appx
パッケージを削除します。 - このコマンドは、Microsoft によって公開され、その参照コンピューターの任意のユーザーによってインストールされたすべてのパッケージを一覧表示します。 コンピューターは sysprepped になるため、これらのユーザー プロファイルではパッケージが不要になったと想定しています。
- 他の発行元に属するアプリを手動でプロビジョニングした場合は、次のコマンドを実行して一覧表示します。
Get-AppxPackage -AllUsers | Format-List -Property PackageFullName,PackageUserInformation
次
Appx
コマンドレットを実行してパッケージを削除します。Remove-AppxPackage -Package <packagefullname>
次のコマンドレットを実行して、プロビジョニングを削除します。
Remove-AppxProvisionedPackage -Online -PackageName <packagefullname>
更新プログラムの問題から回復しようとすると、次の手順に従った後でアプリを再プロビジョニングできます。
Note
オフライン イメージを提供している場合、この問題は発生しません。 このシナリオでは、プロビジョニングはすべてのユーザーに対して自動的にクリアされます。 これには、コマンドを実行するユーザーが含まれます。
詳細
アプリを追加および削除する方法の詳細については、以下を参照してください。
データ収集
Microsoft サポートの支援が必要な場合は、「展開関連の問題について TSS を使用して情報を収集する」に記載している手順に従って情報を収集することをお勧めします。