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

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

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

はじめに

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

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

現象

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

シナリオ 1

  • sysprep とキャプチャするカスタム Windows 10 参照コンピューターを作成しています。
  • この参照コンピューターから、プロビジョニングされた 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 10 ストアに接続し、Microsoft Store を使用して組み込みの Microsoft Store アプリを更新します。

このシナリオで sysprep 操作を実行すると、次のエラーで操作が失敗することがあります。

システム準備ツール 3.14 コンピューターを sysprep しようとしている間に致命的なエラーが発生しました

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

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

原因

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

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

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

解決方法

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

注意

Microsoft Store でアプリの更新を防止するには、イメージを作成する前に、インターネット接続を抜くか、監査モードで自動更新を無効にします。

  1. Appx PowerShell Import-Moduleを実行します。

  2. Dism Import-Module実行します。

  3. Get-AppxPackage -AllUser | Where PublisherId -eq 8wekyb3d8bbwe | Format-List -Property PackageFullName,PackageUserInformation を実行します。

    注意

    • この最後のコマンドレットの出力で、パッケージが [インストール済み] として表示されているユーザーを確認します。 参照コンピューターからこれらのユーザー アカウントを削除するか、これらのユーザー アカウントを使用してコンピューターにログオンします。 次に、手順 4 でコマンドレットを実行してパッケージを削除 Appx します。
    • このコマンドは、Microsoft によって発行され、その参照コンピューターのすべてのユーザーによってインストールされたパッケージを一覧表示します。 コンピューターを sysprepped する必要があるから、これらのユーザー プロファイルはパッケージを必要としなくなったと仮定します。
    • 他の発行元に属するアプリを手動でプロビジョニングしている場合は、次のコマンドを実行して一覧表示します。
      Get-AppxPackage -AllUser |Format-List -Property PackageFullName,PackageUserInformation
  4. Remove-AppxPackage -Package \<packagefullname> を実行します。

  5. 次のコマンドレットを実行してプロビジョニングを削除します。

    Remove-AppxProvisionedPackage -Online -PackageName <packagefullname>

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

注意

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

詳細情報

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