随感録 2018年5月

2018-05-06 (Sun) Windows 10 v1803, Microsoft Store の「予期しない問題が発生しました」を解決

Windows 10 バージョン1803 に上げて, 早々難儀した。

Microsoft Store で,「ダウンロードと更新」が「予期しない問題が発生しました」で失敗。エラーコード: 0x80073CF9

「この問題を報告する」をクリックしても, フィードバックHub が起動しないので、どうしようもない。さらに加えて, Microsoft製のストアアプリが全滅。起動しない。 ほかの会社のは起動できる。

このエラーコードでググるといろいろ出てくるが、どれも, てんで解決にならない。

Windows を再インストールすることなく, 解決しました。解決方法は、これまでWeb上どこにも書かれていない方法だったので、ここに書いておきます。ログさえ見れば、思いつく方法です。

コンポーネントの修復

まずは、コンポーネントの修復から。

PowerShell (管理者モード)で, sfc コマンド, dismコマンドを実行して、コンポーネントを修復する。

> sfc /?

Microsoft (R) Windows (R) Resource Checker Version 6.0
Copyright (C) Microsoft Corporation. All rights reserved.

すべての保護されたシステム ファイルの整合性をスキャンして、間違ったバージョンを
正しい Microsoft バージョンに置換します。

SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=<ファイル>] [/VERIFYFILE=<ファイル>]
    [/OFFWINDIR=<オフライン Windows ディレクトリ> /OFFBOOTDIR=<オフライン起動ディレクトリ> [/OFFLOGFILE=<ログ ファイルのパス>]]

/SCANNOW        すべての保護されたシステム ファイルの整合性をスキャンして、
                可能な場合には問題のあるファイルを修復します。
/VERIFYONLY     すべての保護されたシステム ファイルの整合性をスキャンします。
                修復操作は実行されません。
/SCANFILE       参照されたファイルの整合性をスキャンして、問題が識別された
                場合はファイルを修復します。完全パス <ファイル> を指定します
/VERIFYFILE     <ファイル> で指定された完全パスを持つファイルの整合性を確認
                します。修復操作は実行されません。
/OFFBOOTDIR     オフライン修復の場合は、オフライン起動ディレクトリの場所を指定します。
/OFFWINDIR      オフライン修復の場合は、オフライン Windows ディレクトリの場所を指定します。
/OFFLOGFILE     オフライン修復の場合は、オプションでログ ファイルのパスを指定してログを有効にします。

/scannow オプションを付けて実行。

> sfc /scannow

しばらく時間が掛かります。

私の環境では、修復すべき箇所があって、自動修復されました。

次, dism コマンド.

> dism /online /cleanup-image /?

展開イメージのサービスと管理ツール
バージョン: 10.0.17134.1

イメージのバージョン: 10.0.17134.1

/Cleanup-Image /RevertPendingActions

  警告! /RevertPendingActions オプションを使用できるのは、ブート
  しなかった Windows イメージに対してシステム回復操作を実行する
  場合のみです。

    例:
      DISM.exe /Image:C:\test\offline /Cleanup-Image /RevertPendingActions

/Cleanup-Image /spsuperseded [/hidesp]
  /SPSuperseded: Service Pack のインストール中に作成されたバックアップ ファイルを削除します。
  /HideSP: オペレーティング システムの [インストールされた更新プログラム]
  の一覧に Service Pack が表示されないようにします。

  警告! /SPSuperseded 操作が完了した後は Service Pack をアンインストール
  できません。

    例:
      DISM.exe /Image:C:\test\offline /Cleanup-Image /spsuperseded /hidesp

/Cleanup-Image {/CheckHealth | /ScanHealth | /RestoreHealth}
  /CheckHealth: 失敗したプロセスが原因でイメージが破損しているかどうか、
  またその破損を修復できるかどうかをチェックします。
  /ScanHealth: イメージをスキャンしてコンポーネント ストアの破損の有無を確認します。
  /RestoreHealth: イメージをスキャンしてコンポーネント ストアの破損の有無を確認し、
  修復操作を自動的に実行します。
  /Source と /RestoreHealth: 正常であることがわかっているファイルを使用
  して修復する場合に、それらのファイルの場所を指定します。
  修復ソースの場所の指定について詳しくは、
  https://go.microsoft.com/fwlink/?LinkId=243077 を参照してください。
  /LimitAccess: DISM が WU/WSUS にアクセスできないようにします。

いきなり /RestoreHealth オプションで大丈夫。

> dism /online /cleanup-image /restorehealth

これも、しばらく時間が掛かります。

特に問題は発見されませんでした。

ここまでで、PCを再起動して, 再発するか確認します。私のケースでは治らなかった。

ログを確認する

根本原因を探すため、ログを見てみます (本当は最初にすべき).

C:\Windows\SoftwareDistribution フォルダにある, ReportingEvents.log ファイル。関連するのはこの辺か。

{6678EAD1-7FF0-40FB-BD29-0EA08DD60C00} 2018-05-04 20:51:54:473+0900 1 167 [AGENT_DOWNLOAD_STARTED] 101 {38029067-CDA8-488B-A39E-D76CB0CD496F} 1 0 Update;Microsoft.WindowsStore_8wekyb3d8bbwe Success Content Download Download started. fd6v2jMzEkyZabl3.25.7.9.6.1.0.0.3.0
{235696BF-DB8C-495F-AB20-741A56021A5A} 2018-05-04 20:52:00:375+0900 1 161 [AGENT_DOWNLOAD_FAILED] 105 {62731700-85DB-4295-A9CB-99E7B0E4CD1F} 1 80073cf9 Update;Microsoft.WindowsStore_8wekyb3d8bbwe Failure Content Download Error: Download failed. fd6v2jMzEkyZabl3.25.7.6.6.1.0.0.105.0
{0A301985-E436-402A-A25F-7F4156C7235A} 2018-05-04 20:52:00:936+0900 1 161 [AGENT_DOWNLOAD_FAILED] 105 {9DC5DFF0-B1EE-4908-A500-7E2DE9669724} 1 80073cf9 Update;Microsoft.WindowsStore_8wekyb3d8bbwe Failure Content Download Error: Download failed. fd6v2jMzEkyZabl3.25.7.7.6.1.0.0.90.0
{3B008EB1-ACEC-4A69-9C68-4E024C81838D} 2018-05-04 20:52:01:914+0900 1 161 [AGENT_DOWNLOAD_FAILED] 105 {38029067-CDA8-488B-A39E-D76CB0CD496F} 1 80073cf9 Update;Microsoft.WindowsStore_8wekyb3d8bbwe Failure Content Download Error: Download failed. fd6v2jMzEkyZabl3.25.7.9.6.1.0.0.94.0

AGENT_DOWNLOAD_FAILED ということで、ネットワーク周りか? しかし, どこでどのようにエラーになったか出してくれないと、まったく役に立たない。

次,「イベントビューア」を開いて, カスタムビュー > 管理イベント. 似たようなエラーが並んでいる。

hori3 の 'Microsoft.BingFinance_8wekyb3d8bbwe' install が失敗しました。エラー: 'インストールに失敗しました。ソフトウェアの製造元に問い合わせてください。' (2.5617052 秒)
ログの名前: Microsoft-Windows-AppReadiness/Admin
ソース: AppReadiness
ユーザー 'hori3' に対する 'Microsoft.BingFinance_4.23.10923.0_neutral_~_8wekyb3d8bbwe' での Appx 操作 'RegisterPackageAsync' は失敗しました - エラー 0x80070003: パッケージ Microsoft.BingFinance_4.23.10923.0_neutral_split.language-ja_8wekyb3d8bbwe の展開が AppLocker によってブロックされました。。(エラー: インストールに失敗しました。ソフトウェアの製造元に問い合わせてください。)
ログの名前: Microsoft-Windows-AppReadiness/Admin
ソース: AppReadiness

いろいろやってみる

  1. 自動トラブルシューティングを走らせる。

    Windows 10 version 1803 では,「設定」> 更新とセキュリティ > トラブルシューティング

    次を順番に実行する;

    • Windows Update
    • インターネット接続
    • Windows ストアアプリ
    • ネットワークアダプタ
  2. ダメ!絶対! 「Microsoft Store」の再インストールを勧めるサイトがあるが、絶対に行ってはならない。詰む。
  3. c:\windows 直下に AppReadiness フォルダを作る。自動的に作られるが、もしなければ、作ってやる。
  4. ×意味ない. c:\windows 直下に AUInstallAgent フォルダを作る。これを勧めるサイトがチラホラあるが、これはまったく意味ない。正常に動いている端末でも存在しない。何だろう、昔の名残り?
  5. c:\windows\SoftwareDistribution の作り直し。

    セーフモードで起動して, SoftwareDistribution を削除して、再起動。自動的に新しく作り直される。

  6. Store のリセット

    管理者モードで, wsreset コマンドを実行。

    > wsreset
    

新しいユーザアカウント

新しいユーザアカウントを作って、そちらでログインしなおして、状況を見る。

今回のケースでは, アプリを起動しようとするとそのアプリが消えていった。より不味い。

ユーザアカウント周り

余計なユーザが存在すると悪さする, という意見もあった。

> wmic
wmic:root\cli>useraccount get name,sid
Name                SID
Administrator       ...
DefaultAccount      ...
Guest               ...
ユーザが続く...

HomeGroupUser$ が気になったが、特に問題なさそう。ホームグループは, Windows 10 v1803で削除された。

なお, MMC (管理コンソール) の「ローカルユーザとグループ」スナップインは、弾かれる; マジか。

このコンピュータのユーザアカウントを管理するには、コントロールパネルのユーザアカウントツールを使用してください。

結果

結論としては, 私のケースでは, C:\Windows\System32\AppLocker フォルダを作ってやったら、回復しました。このフォルダは空ですが、消してはいけません。自動的に復元 (作成) されません。

エラーは AGENT_DOWNLOAD_FAILED ですが,「展開が AppLocker によってブロック」というところがポイントです。これは想像ですが、ファイルをダウンロードした後で、内容の正当性を検証しようとして、失敗していたのでしょう。

一通り起動するか試して、全部順調です。が、フィードバックHub だけが起動しない症状が続いています。まぁ、意味のないアプリなので、気にしない。

2018-05-09 (Wed)

Windows 10 version 1803.

いろいろなアプリケーションを閉じたとき、すぐに勝手に、開きなおされる。これでは終了できない。Excel 2016, Visual Studio 2017, など。

タスクマネジャーから [タスクの終了] すると、ようやく、終了させることができる。

同様の症状を探してみたが、この件は見当たらなかった。Windowsのログイン時に、前回セッションのアプリが自動で起動する話は、大量にあった。それとは違う。

信頼性モニタ

状況を確認する.

  • コントロールパネル > セキュリティとメンテナンス > 信頼性モニタ

Windows 10 バージョン1803 に上げたときから、突然、アプリケーションエラーが多発している。古いネイティブアプリ, 新しいアプリ, UWPアプリ、どれも「動作が停止しました」になっている。

(2018.5.15 update)

これを踏まえて当たりを付けた。Windows Error Reporting Service が元凶。

どうやら、アプリを正常終了したつもりだったが, クラッシュしてしまい、Windows Error Reporting Service が気を利かせて再起動していたようだ。

これはヒドい。

状況を見る

「サービス」を管理者モードで開き、Windows Error Reporting Service のプロパティで、スタートアップの種類を"無効"にすればOK.

しかしその後, アプリを閉じたときに例外が発生する.「Fail Fast例外が発生しました。例外ハンドラーを呼び出さずに、処理を直ちに終了します。」

何だこりゃ?

A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately.

ERROR_FAIL_FAST_EXCEPTION 1653 (0x675). RaiseFailFastException() が送出し, アプリケーションを終了し, Windows Error Reporting を起動する。

解決

(2018.5.15)

解決した。原因を追いかける手順だけ書いておく。

クラッシュするアプリの、クラッシュダンプを取得する. Windows Error Reporting Service のプロパティで, やっぱり, スタートアップの種類を「自動」にする。

初期状態では, クラッシュダンプは生成されない。レジストリエディタ (regedit) を管理者モードで開き, 次のキーを作る。このキーの下には、特に何も作らなくてもいい。(デフォルト値での挙動になる.)

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps

オプションの説明はこちら; Collecting User-Mode Dumps (Windows)

この状態で何かがクラッシュすると, デフォルトで, %LOCALAPPDATA%\CrashDumps にダンプファイルが生成される。Windows 10 では, 具体的には, C:\Users\ユーザアカウント\AppData\Local\CrashDumps.

次に, これを分析するため, WinDbg をインストールする。

Visual Studio Installer には、それらしいアイテムが見えない。分かりにくいが, コントロールパネルから,「プログラムと機能」で, Windows Software Development Kit (SDK) の「変更」で、追加インストールできる。

後は、WinDbg でクラッシュダンプを開き、バックトレースを確認すれば、どこが引き起こしているのか、すぐに分かる。