SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Windows 8 で既定のストアアプリを更新した際の Sysprep の注意点

leave a comment

Windows 8 ではデフォルトでいくつかのストアアプリがインストールされています。
# 既定でプロビジョニング済みの WinRT アプリ

ストアアプリを更新した場合、Sysprep を実行した場合にエラーが発生することがあります。
Removing or Updating Windows 8 built-in Windows Store apps causes Sysprep to fail

最新のストアアプリをインストールした状態で Sysprep を実行するための方法についてまとめてみたいと思います。
更新の仕方の技術情報は以下のものになります。
アプリの追加と削除の方法

以下の画像は Windows 8 Enterprise Edition でデフォルトでインストールされているストアアプリで更新が可能なものとなります。
image
これらのストアアプリを更新した状態で Sysprep を実行してみると以下のようにエラーが発生します。
image

Sysprep を実行した際のエラーですが、[C:WindowsSystem32SysprepPanthersetuperr.log] に出力がされます。以下はログファイルの内容です。

2013-06-02 15:18:15, Error                 SYSPRP Package Microsoft.Reader_6.2.9200.20623_x64__8wekyb3d8bbwe was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image.
2013-06-02 15:18:15, Error                 SYSPRP Failed to remove apps for the current user: 0x80073cf2.
2013-06-02 15:18:15, Error                 SYSPRP Exit code of RemoveAllApps thread was 0x3cf2.
2013-06-02 15:18:15, Error      [0x0f0082] SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing ‘SysprepGeneralize’ from C:WindowsSystem32AppxSysprep.dll; dwRet = 0x3cf2
2013-06-02 15:18:15, Error                 SYSPRP ActionPlatform::ExecuteAction: Error in executing action; dwRet = 0x3cf2
2013-06-02 15:18:15, Error                 SYSPRP ActionPlatform::ExecuteActionList: Error in execute actions; dwRet = 0x3cf2
2013-06-02 15:18:15, Error                 SYSPRP SysprepSession::Execute: Error in executing actions from C:WindowsSystem32SysprepActionFilesGeneralize.xml; dwRet = 0x3cf2
2013-06-02 15:18:15, Error                 SYSPRP RunPlatformActions:Failed while executing SysprepSession actions; dwRet = 0x3cf2
2013-06-02 15:18:15, Error      [0x0f0070] SYSPRP RunExternalDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = 0x3cf2
2013-06-02 15:18:15, Error      [0x0f00a8] SYSPRP WinMain:Hit failure while processing sysprep generalize internal providers; hr = 0x80073cf2

2013-06-02 15:18:15, Error                 SYSPRP Package Microsoft.Reader_6.2.9200.20623_x64__8wekyb3d8bbwe was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image.

最初に発生しているエラーは上記のものですね。

ビルトインでインストールされているストアアプリをアップデートしてしまうと Sysprep 時にエラーとなってしまうようです。

ストアアプリをアップデートしない状態であれば、Sysprep を実行することは可能です。

アップデートしてしまった場合は、アップデートしたストアアプリをアンインストールする必要があるようです。

インストールされたストアアプリ (サイドローディングされた WinRT アプリを含む) ですが管理者として実行した PowerShell で Get-AppxPackage Get-AppxProvisionedPackage コマンドレットを使用することで確認することができます。
App Installation Cmdlets in Windows PowerShell を見ると関連するコマンドレットを調べることができそうですね。

デフォルトでインストールされているものに関しては以下のようなコマンドで取得できます。

Get-AppxPackage -AllUser | Where PublisherId -eq 8wekyb3d8bbwe |  Format-List -Property PackageFullName,PackageUserInformation

image

ストアアプリを削除する場合には以下のようなコマンドを実行します。
# 以下のコマンドはインストールメディアでインストールされるストアアプリを削除するものになります。

Get-AppxPackage -AllUser | Where PublisherId -eq 8wekyb3d8bbwe |  Remove-AppxPackage

パッケージを削除するとスタート画面からもアプリケーションが削除されます。
この状態であればアップデートしてしまった場合も Sysprep をかけることができるようになると思います。
image

 

なお、ストアアプリのですが、

  • インストールされたアプリケーション
  • プロビジョニングされたアプリケーション

の 2 種類があります。

インストールされているアプリケーションはストアアプリから任意にインストールしたアプリケーションになります。
このアプリケーションは Sysprep した際には再度明示的にインストールをする必要があります。
プロビジョニングされたアプリケーションは初回ログイン時に自動的にインストールされるアプリケーションになります。

Remove-AppxPackage はインストールされているアプリケーションの削除になりますので、ログイン時にインストールされるアプリケーションに関しては削除されていません。
そのため、新規ユーザーの初回ログイン時にはプロビジョニングされたアプリケーションがインストールされます。
image

初回ログイン時にアプリケーションをインストールされないようにするためにはプロビジョニングされたアプリケーションの削除を行います。
プロビジョニングされたアプリケーションを削除する場合には以下のコマンドを実行します。

Get-AppxProvisionedPackage -Online | Where PublisherId -eq 8wekyb3d8bbwe | Remove-AppxProvisionedPackage -Online

 

インストールされているアプリケーションとプロビジョニングされているアプリケーションの管理は別のようですので、プロビジョニングされているアプリケーションのバージョンを最新にするためには、一度プロビジョニングされているアプリケーションを削除してから追加する必要があるようです。

Sysprep 実行時のエラーに関しては、インストールされたアプリケーションの更新によるもののようですので、プロビジョニングされたアプリケーションについては削除しなくてもエラーは回避できると思います。

プロビジョニングされたアプリケーションとインストールされたアプリケーションは個別のバージョン管理となるようですので、インストールされているアプリケーションを更新してもプロビジョニングされたアプリケーションのバージョンは変わらないようです。

初回ログイン時に展開されるストアアプリを最新のバージョンにするためにはプロビジョニングされたアプリケーションのバージョンを変更する必要があるようです。

Add-ProvisionedPackage ではパッケージの appx を指定する必要があるのですが、ストアアプリから特定のアプリケーションを追加するための方法が見つかりませんでした…。

特定のストアアプリを含めて展開をしたいという要望があった場合は、それが実現可能なのかは注意したほうがよいかもしれないですね。
# ストアアプリをプロビジョニングされたアプリケーションとして追加するための公開されている情報が見つからなかったので、インシデントを使って実現可能かを問い合わせないといけなさそうですが。

Written by masayuki.ozawa

6月 2nd, 2013 at 8:35 pm

Posted in Windows Client

Tagged with ,

Leave a Reply

*