none
スタートメニューが表示しない RRS feed

  • 質問

  • ▼運用環境
    ・Windows Server 2016 Standard (ビルド 14393)
     ×2台で30ユーザー程度のRDSシンクライアント運用
     (以下、¥¥RDS1・¥¥RDS2と記載)

    ・Active Directory ドメイン環境

    ・移動ユーザープロファイルディスク .vhdx

    ・ユーザーはログインする際に、RD接続ブローカーで¥¥RDS1または¥¥RDS2にランダムに振り分けられる。

    ▼発生している問題
    ・ログインユーザー単位でスタートメニューが表示しない。
     → タスクバーは表示されるが、左下のWindowsアイコンをクリックしても無反応。
     → Windowsアイコンの右クリック(文字メニュー)は正常に表示する。
     → [Windowsキー]押下も無反応。

    ・Windowsキー+R(ファイル名を指定して実行)や、+D、+M、+Iなどのショートカットキーは正常に使用可能。

    ・スタートメニューに登録したCtlr+Alt+*でのアプリケーション起動も正常

    ・任意のログインユーザー単位でランダムに?発生/復旧を繰り返している。
     → ¥¥RDS1/2上の複数のログインユーザーで、正常なユーザーと異常なユーザーが混在する。
     → 特定のユーザーに起きている現象ではない。翌日にログインすると勝手に復旧していることがある。


    ▼やってみたこと
    c:¥> dism /online /cleanup-image /restorehealth
    c:¥> sfc /scannow
    ps> Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
    tdlrecover.exe -reregister -resetlayout -resetcache

     → いずれも状況変わらず。


    c:¥> tdlrecover.exe -reregister -resetlayout -resetcache

     → 実行中に、問題解決してスタートメニューが表示される場合がある。
     変わらないこともある。

     → 管理者権限の実行では問題解決しないが、ログインユーザーの権限で実行すると、そのユーザーだけ問題解決する。


    できれば、クリーンインストール・ユーザープロファイルの再作成は避けたいというところです。
    よろしくお願いします。

    2019年1月4日 22:39

回答

  • tdlrecover.exe は管理者権限が不要(なので実行ユーザーのプロファイル内のタイル データベースのみ修復する)なので、「管理者権限の実行では問題解決しないが、ログインユーザーの権限で実行すると、そのユーザーだけ問題解決する」のは正常な動作です。

    参考:https://blogs.technet.microsoft.com/askcorejp/2017/06/12/windows-10-のスタート-メニューについて/

    これで解決するなら原因はタイル データベースの破損なので、破損する原因(トリガー)を切り分けていくしかないでしょう。


    Hebikuzure aka Murachi Akira

    • 回答としてマーク Sedv 2019年1月14日 23:33
    2019年1月7日 1:34
  • 私もWindowsメニューが表示されない現象が発生して困っていたのですが

    以下のフォルダがなくなっていたのが原因でした。

    パス: %systemroot%\System32\AppLocker

    作成したところメニューが表示されるようになりました。

    一度ご確認されては、いかがでしょうか。


    • 編集済み Mr.Spock 2019年1月8日 1:38
    • 回答としてマーク Sedv 2019年1月14日 23:33
    2019年1月8日 1:35
  • 直接のアドバイスではないですが、Process Monitor で正常/異常それぞれのユーザーのサインイン時の関連プロセスの挙動を調べるのも良いかと思います。

    ※うまくフィルタリングしないとログ量が膨大になるので調査/解析が大変ですが。


    Hebikuzure aka Murachi Akira

    • 回答としてマーク Sedv 2019年1月14日 23:33
    2019年1月12日 4:51

すべての返信

  • tdlrecover.exe は管理者権限が不要(なので実行ユーザーのプロファイル内のタイル データベースのみ修復する)なので、「管理者権限の実行では問題解決しないが、ログインユーザーの権限で実行すると、そのユーザーだけ問題解決する」のは正常な動作です。

    参考:https://blogs.technet.microsoft.com/askcorejp/2017/06/12/windows-10-のスタート-メニューについて/

    これで解決するなら原因はタイル データベースの破損なので、破損する原因(トリガー)を切り分けていくしかないでしょう。


    Hebikuzure aka Murachi Akira

    • 回答としてマーク Sedv 2019年1月14日 23:33
    2019年1月7日 1:34
  • 私もWindowsメニューが表示されない現象が発生して困っていたのですが

    以下のフォルダがなくなっていたのが原因でした。

    パス: %systemroot%\System32\AppLocker

    作成したところメニューが表示されるようになりました。

    一度ご確認されては、いかがでしょうか。


    • 編集済み Mr.Spock 2019年1月8日 1:38
    • 回答としてマーク Sedv 2019年1月14日 23:33
    2019年1月8日 1:35
  • 大変有益な情報ありがとうございます。
    リンク先の情報(タイル表示の実体とメカニズム)をまさに探していたところでした!
    まだハッキリと原因トリガー判明と問題解決には至りませんが、原因切り分けが前に進めそうです。

    少なくとも、タイルデータベースと、ユーザプロセスで実行されているShellExperienceHost.exe周りではなかろうかと当たりが付いてきたので、ハッキリと判りましたら、またこの場をお借りしてご報告いたします。

    取り急ぎ遅くなりました御礼まで。

    2019年1月11日 23:48
  • ご助言ありがとうございます。
    幸い、こちらの環境では %systemroot%\System32\AppLocker (中身は空)は失われてはいませんでいたが、情報ありがたいです。継続的にパス存在は確認しようと思います。

    2019年1月11日 23:50
  • 根本的な発生原因を突き止めるには至っておりませんが、Hebikuzure aka Murachi Akira様から教示いただいた資料から、対症療法・原因調査が前に進みましたので、更なるご助言が頂けるかもと下心を持ちつつ、ご報告いたします。

    ------

    ・「スタートメニューが表示しない問題」が発生しているユーザーは、本来実行されているべきユーザープロセス、ShellExpericeHost.exeが、実行中プロセス一覧に存在しない。

    ・たとえば現在 Server1は15ユーザーが対面ログインしていて、ShellExperienceHost.exeが起動している(正常にスタートメニューが表示いると思われる)ユーザーは6ユーザー、Server2は16ユーザー中、正常3ユーザー、といった状況です。

    ・上記を起動させるべく %system%\SystemApps\ShellExpericeHost_*************\ShellExpericeHost.exe を対面ユーザー(非administrator)で手動で実行すると、一瞬だけ実行中プロセス一覧に表示されて、即時プロセス終了します。

    ・上記アベンドの際、以下のイベントが記録されておりました;

    | 障害が発生しているアプリケーション名: ShellExperienceHost.exe、バージョン: 10.0.14393.2339、タイム スタンプ: 0x5b1f1748
    | 障害が発生しているモジュール名: Windows.UI.Xaml.dll、バージョン: 10.0.14393.2608、タイム スタンプ: 0x5bd13741
    | 例外コード: 0xc0000409
    | 障害オフセット: 0x00000000000528e0
    | 障害が発生しているアプリケーション パス: C:\Windows\SystemApps\ShellExperienceHost_*************\ShellExperienceHost.exe
    | 障害が発生しているモジュール パス: C:\Windows\System32\Windows.UI.Xaml.dll

    ・Windows.UI.Xaml.dll の正常性を確認したところ、問題が発生している Windows Server 2016 Standard (ビルド 14393)も、問題が発生していない Windows 10 Pro(ビルド17134)も、同一の16,592,384 bytes で、バイナリ比較も一致したので、DLL自体には問題ないと推察いたします。

    ・tdlrecover.exe ~ の実行中に、スタートメニューが復旧して表示されることがありますが、復旧に成功した場合、その瞬間に(自動的に)ShellExpericeHost.exe が正常に起動していました。

    ・問題となっている「タイルデータベースのキャッシュ」の実体は、%UserProfile%\AppData\Local\TileDataLayer\Database\ 配下にあるようなので、この辺りを継続的に調査したいと思いますが、今のところ正常ユーザーと異常ユーザーの差異は見つけられません。

    2019年1月12日 1:58
  • 直接のアドバイスではないですが、Process Monitor で正常/異常それぞれのユーザーのサインイン時の関連プロセスの挙動を調べるのも良いかと思います。

    ※うまくフィルタリングしないとログ量が膨大になるので調査/解析が大変ですが。


    Hebikuzure aka Murachi Akira

    • 回答としてマーク Sedv 2019年1月14日 23:33
    2019年1月12日 4:51
  • Hebikuzure aka Murachi Akira 様

    重ねてありがとうございます。さっそくProcess Monitorをダウンロード・試用してみて、こいつは使える、と手ぐすね引いて発症を待っているのですが、一昨日(1/12)ぐらいから全く発症しなくなりました。

    やったことと言えば、1/10晩に月例セキュリティ更新(更新後も発症していた)と、それに伴うサーバ再起動(再起動も何度か試した)、あと社内ユーザーに「対症療法ですみませんが、発症したらお試してください」と以下の二行の fix.bat を配布したことぐらいです。

    > powershell -command "Get-AppXPackage |Where-Object {$_.InstallLocation -like """*shellexperience*"""} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register """$($_.InstallLocation)\AppXManifest.xml"""}"

    > tdlrecover.exe -reregister -resetlayout -resetcache


    tdlrecoverは、ユーザー単位で何度か試行はしていたのですが、PSコマンド(UWPの再登録)の方は、Administrators権限が必要と誤解していたので、非Administratorsなログインユーザー単位で実行させたのは初めてかもしれません。
    あと、前掲のPSコマンドは -AllUsers の全UWPを再登録かけていたのですが、今回のPSコマンドはログインユーザーのShelllExperinceHost限定での再登録です。

    原因調査も、対応策も中途半端で申し訳ありませんが、残念ながら(?)検証できなくなってしまったので、いったんクローズさせて頂きます。ご報告方々、ご助言・ご協力頂きましたことに重ねて御礼申し上げます。

    2019年1月14日 23:33
  • https://blogs.technet.microsoft.com/askcorejp/2017/06/12/windows-10-のスタート-メニューについて/

    にも書かれている PowerShell コマンドでスタート メニュー アプリを再インストールすることが回避の手段として書かれていますので、結果的にこれが有効だったのかもしれません。


    Hebikuzure aka Murachi Akira

    2019年1月15日 0:45