組み込みの Windows イメージを含む Microsoft Store アプリを削除または更新した後、Sysprep が失敗する

この記事では、Microsoft Store を使用してプロビジョニングされた Microsoft Store アプリを削除または更新し、コンピューターで sysprep を実行するときに発生する問題について説明します。

適用対象: Windows 10 - すべてのエディション、Windows 11
元の KB 番号: 2769827

概要

Sysprep は、重複、監査、顧客の配信のために Windows のインストールを準備する IT 管理者向けのツールです。 この記事のガイダンスは、サポート エージェントと IT プロフェッショナルによる使用を目的としています。 Microsoft Store アプリの使用中に問題が発生しているホーム ユーザーの場合は、「Microsoft Store のアプリに関する問題を解決する」を参照してください。

いくつかの Microsoft Store アプリは Windows イメージに組み込まれています。 これらのアプリには、メール、マップ、メッセージング、Bing、旅行、ニュースなどのアプリが含まれます。 これらのアプリは、 プロビジョニングされた アプリと呼ばれます。 プロビジョニングされたアプリはイメージでステージングされ、最初のログオン時に Windows イメージのすべてのユーザーに対してインストールされるようにスケジュールされます。 組み込みのアプリに加えて、Microsoft Store に公開しなくても、独自の基幹業務 Microsoft Store アプリを Windows イメージにサイドロードできます。 パッケージをサイドロード Appx するには、DISM.exe または DISM PowerShell モジュールで使用できるオンラインまたはオフラインのサービス コマンドを使用します。

現象

次のようなシナリオを考えてみましょう。

シナリオ 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 マシンの準備中に致命的なエラーが発生しました

さらに、SetupErr.logでは、次のエラー エントリが表示される場合があります。

<日付><時刻>、エラー SYSPRP パッケージ <PackageFullName> がユーザーにインストールされましたが、すべてのユーザーに対してプロビジョニングされたわけではありません。 このパッケージは sysprep イメージで正しく機能しません。
<日付><時刻>、エラー SYSPRP 現在のユーザーのアプリを削除できませんでした: 0x80073cf2。
<日付><時刻>、エラー SYSPRP RemoveAllApps スレッドの終了コードが0x3cf2されました。
<日付><時刻>、エラー [0x0f0082] SYSPRP ActionPlatform::LaunchModule: C:\Windows\System32\AppxSysprep.dll から 'SysprepGeneralize' の実行中にエラーが発生しました。dwRet = 0x3cf2
<日付><時刻>、エラー SYSPRP ActionPlatform::ExecuteAction: アクションの実行中のエラー、dwRet = 0x3cf2
<日付><時刻>、エラー SYSPRP ActionPlatform::ExecuteActionList: 実行アクションのエラー、dwRet = 0x3cf2
<日付><時刻>、エラー SYSPRP SysprepSession::Execute: C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml からのアクションの実行中にエラーが発生しました。dwRet = 0x3cf2
<日付><時刻>、エラー SYSPRP RunPlatformActions:SysprepSession アクションの実行中に失敗しました。dwRet = 0x3cf2
<日付><時刻>、エラー [0x0f0070] SYSPRP RunExternalDlls:レジストリ sysprep DLL の実行中にエラーが発生し、sysprep の実行が停止しました。 dwRet = 0x3cf2
<日付><時刻>、エラー [0x0f00a8] SYSPRP WinMain:Sysprep の処理中のヒット エラーは内部プロバイダーを一般化します。hr = 0x80073cf2

原因

Sysprep には、パッケージをクリーンAppxし、イメージを一般化するために Windows に追加されたプロバイダーがあります。 プロバイダーは、パッケージが Appx ユーザーごとのパッケージまたはすべてのユーザー プロビジョニング パッケージの場合にのみ機能します。

  • ユーザーごとのパッケージ は、パッケージが特定の Appx ユーザー アカウント用にインストールされ、コンピューターの他のユーザーが使用できないことを意味します。
  • すべてのユーザー パッケージ は、このイメージを Appx 使用するすべてのユーザーがアプリにアクセスできるように、 がイメージにプロビジョニングされていることを意味します。

イメージにプロビジョニングされているすべてのユーザー パッケージがイメージから手動でプロビジョニング解除されたが、特定のユーザーに対して削除されなかった場合、プロバイダーは sysprep 中にこのパッケージをクリーンアップするときにエラーが発生します。 また、イメージにプロビジョニングされたすべてのユーザー パッケージがこの参照コンピューターのユーザーによって更新された場合、プロバイダーも失敗します。

解決方法

この問題を解決するには、sysprep を実行しているユーザーのパッケージを削除し、プロビジョニングも削除します。 それには、以下の手順を実行します。

注:

Microsoft Store がアプリを更新できないようにするには、イメージを作成する前に、インターネット接続を取り外すか、監査モードで自動Updatesを無効にします。

  1. Windows PowerShell コマンドレットを実行します。

    Import-Module Appx
    Import-Module Dism
    Get-AppxPackage -AllUsers | Where PublisherId -eq 8wekyb3d8bbwe | Format-List -Property PackageFullName,PackageUserInformation
    

注:

  • この最後のコマンドレットの出力で、パッケージがインストール済みとして表示されているユーザーをチェックします。 参照コンピューターからこれらのユーザー アカウントを削除するか、これらのユーザー アカウントを使用してコンピューターにログオンします。 次に、手順 2 のコマンドレットを実行してパッケージを削除します Appx
  • このコマンドは、Microsoft によって発行され、その参照コンピューターの任意のユーザーによってインストールされたすべてのパッケージを一覧表示します。 コンピューターは sysprepped であるため、これらのユーザー プロファイルではパッケージが不要になると想定しています。
  • 他の発行元に属するアプリを手動でプロビジョニングした場合は、次のコマンドを実行して一覧表示します。

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

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

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

    Remove-AppxProvisionedPackage -Online -PackageName <packagefullname>
    

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

注:

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

詳細

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

データ収集

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