次の方法で共有


組み込みの 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 がアプリを更新できないようにするには、イメージを作成する前に、インターネット接続を切断するか、監査モードで自動更新を無効にします。

  1. 次の 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

  1. Appx コマンドレットを実行してパッケージを削除します。

    Remove-AppxPackage -Package <packagefullname>
    
  2. 次のコマンドレットを実行して、プロビジョニングを削除します。

    Remove-AppxProvisionedPackage -Online -PackageName <packagefullname>
    

更新プログラムの問題から回復しようとすると、次の手順に従った後でアプリを再プロビジョニングできます。

Note

オフライン イメージを提供している場合、この問題は発生しません。 このシナリオでは、プロビジョニングはすべてのユーザーに対して自動的にクリアされます。 これには、コマンドを実行するユーザーが含まれます。

詳細

アプリを追加および削除する方法の詳細については、以下を参照してください。

データ収集

Microsoft サポートの支援が必要な場合は、「展開関連の問題について TSS を使用して情報を収集する」に記載している手順に従って情報を収集することをお勧めします。