none
[原創][分享]本地賬戶 Modern App 無法運行的解決方法 RRS feed

  • 常规讨论

  • 問題場景説明

    我的 Windows 10 有幾個本地賬戶,在一次通過應用商店對最常用本地賬戶的 Modern App 進行更新,
    當更新成功完成后,最常用的沒有問題,但是其他兩個并沒更新衹是登錄桌面,一個管理員,一個標準用戶的皆無法運行,甚至都看不到窗體一閃即逝,其在開始菜單名稱變爲

    @{Microsoft.Windows...}

    這種形式,從 eventvwr 查詢日志,可從 "系統日志部分" 看到不少

    事件來源: Win32k
    事件 ID: 267

    的日志, 提示 "找不到映像文件的資源類型".

    嘗試對其中的 "應用商店" 進行重新安裝, 參照之前自己寫的如下文章

    [分享]無需從網絡下載, 直接重裝系統自帶 "應用商店(WindowsStore)" 應用
    https://social.technet.microsoft.com/Forums/Azure/zh-CN/54db961b-bdd0-4308-b26c-fb206d08f8c4/-windowsstore-?forum=win10itprogeneralCN

    但依然無效。

    解決方法

    警告: 因爲條件有限,沒有對此方法經過充分測試,
    不清楚對於那些啓用了 BitLocker 和 Windows Hello 功能的設備是否存在額外情況。
    以及不清楚對於使用 LiveID 的賬戶,此方法是否存在未知問題。
    此方法是否完全恢復了 Modern App,也不能完全肯定。

    簡單來説,風險自擔。

    第一部分, 恢復 Per-User 級 Modern Apps 運行

    注意: 依據程序設置存儲的差異,部分程序用此方法恢復后,可能丟失原有設置。

    1. 登錄其他賬戶的桌面,這裏首選管理員賬戶,衹要是 Administrators 組就可以,不需要啓用 Administrator 賬戶。
       如果是要恢復的是管理員,那麽臨時再建立一個管理員賬戶。

    2. 以管理員身份運行命令提示符,

    3. 定位到有問題的用戶的如下目錄

    cd /d C:\Users\KYW\AppData\Local\Microsoft\Windows

    假設用戶名爲 KYW。

    4. 通過

    move

    del

    命令把文件 usrclass.dat 重命名或刪除,操作前可以進行備份。
    該文件存儲當前用戶注冊表項

    HKCU\SOFTWARE\Classes

    的設置
    命令參考

    attrib usrclass.dat -h
    move usrclass.dat usrclass.dat.old
    del usrclass.dat /a/f

    5. 然後登錄該用戶桌面,系統會自動重建一個 usrclass.dat 文件

    6. 隨便點擊之前不能運行的 Modern App, 應該可以看到那些程序可以重新運行了。

    7. 如果某些程序在開始菜單的快捷方式名稱依然有問題,那麽點擊或按一下圖標,即可恢復。

    8. 如果還有程序不能成功運行,那麽按照我之前的那篇文章,重新安裝一下。

    雖然這些程序可以正常運行了,但并不代表其所有功能,都可以正常運作了。
    比如應用商店的登錄功能,還有設置中的賬戶設置,相關功能要不出不來,要不一直顯示在加載。
    究其原因,是一些 System 級別的 Modern App 注冊表設置不存在造成。

    第二部分, 恢復 System 級 Modern Apps 運行

    雖然要恢復的是 System 級 Modern Apps 設置,但并不需要管理員權限,衹需把如下命令複製到命令提示符并執行,即可。

    for /f "tokens=3" %n in ('reg query "HKLM\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\PackageRepository\Packages" /s /f SystemApps /d ^| find "Path"') do @powershell -command "add-appxpackage -path '%n\AppxManifest.xml' -register -disabledevelopmentmode"

    執行前,可以把 @powershell 那一部分替換爲

    @echo "%n"

    這樣可以瞭解一共有哪些 Modern App 是 System 級的。

    在恢復 Cortana 時,可能會報錯,不過從實驗看不影響用本地賬戶正常使用 Cortana。

    到此 Modern App 運行就完全恢復了。


    Folding@Home

    2016年2月13日 11:25