共用方式為


新式、收件匣和Microsoft市集應用程式的疑難解答指引

注意

本文主要提供給支援專員與 IT 專業人員使用。 如果您要尋找更多一般資訊,請參閱 修復 Windows 中的應用程式和程式。

新式應用程式或Microsoft市集應用程式有時可能無法啟動或啟動,然後停止回應。 本指南討論可用來針對這類問題進行疑難解答的疑難解答技術。

疑難排解檢查清單

  1. 確認是否已為用戶註冊或安裝應用程式。
  2. 為使用者重新註冊應用程式,可能會解決啟用問題。
  3. 如果您未收到 Get-AppxPackage Cmdlet 的回應,您仍然可以使用 Add-AppxPackage Cmdlet。
  4. 針對 XML 路徑,您必須檢查已安裝的版本。
  5. 如果應用程式在重新註冊之後仍然無法啟動,可能是應用程式的套件已損毀或遺失某些元件。
  6. 針對單一應用程式,您可以使用 winget 命令。
  7. 檢查系統安裝程式是否有適當的設定可下載並安裝 AppX 套件。
  8. 如果 Microsoft Store 啟動或先前移除時發生問題,請嘗試重新安裝。
  9. 如果應用程式仍然失敗,某些事件記錄可能會很有説明。

以下是詳細的疑難解答檢查清單:

  1. 確認是否已為用戶註冊或安裝應用程式。

    新式應用程式會部署為封裝到計算機,然後需要針對登入的每個用戶個別註冊。 每個應用程式的記錄都會保留在每部計算機上,以及哪些用戶已註冊。 例如,若要查看個別使用者是否已安裝計算機應用程式,請在非刪除的 Windows PowerShell 提示字元中使用下列 Cmdlet:

    Get-AppxPackage *calculator*
    

    如果已註冊,輸出看起來會像下面這樣:

    Name              : Microsoft.WindowsCalculator 
    Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US 
    Architecture      : X64 
    ResourceId        : 
    Version           : 11.2210.0.0 
    PackageFullName   : Microsoft.WindowsCalculator_11.2210.0.0_x64__8wekyb3d8bbwe 
    InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_11.2210.0.0_x64__8wekyb3d8bbwe 
    IsFramework       : False 
    PackageFamilyName : Microsoft.WindowsCalculator_8wekyb3d8bbwe 
    PublisherId       : 8wekyb3d8bbwe 
    IsResourcePackage : False 
    IsBundle          : False 
    IsDevelopmentMode : False 
    NonRemovable      : False 
    Dependencies      : {Microsoft.UI.Xaml.2.8_8.2212.15002.0_x64__8wekyb3d8bbwe, 
                        Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x64__8wekyb3d8bbwe, 
                        Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64__8wekyb3d8bbwe, 
                        Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe...} 
    IsPartiallyStaged : False 
    SignatureKind     : Store 
    Status            : Ok 
    
  2. 即使應用程式顯示為已為您的使用者註冊,有時重新註冊使用者的應用程式還是可以解決啟用問題,因為它會修復套件的任何遺漏專案。 在相同的非刪除 PowerShell 提示字元中使用下列 Cmdlet(本範例適用於計算機應用程式):

    Get-AppxPackage *calculator*| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"} 
    

    注意

    請注意,如何使用管道 | Cmdlet 將 Cmdlet 的輸出Get-AppxPackage傳回至 Add-AppxPackage Cmdlet。 只有當封裝已經註冊時,才能運作。

  3. 如果您未收到 Cmdlet 的回應Get-AppxPackage,您仍然可以使用系列名稱或AppxManifest.xml檔案的路徑來使用 Add-AppxPackage Cmdlet。

    這可能是因為雖然此使用者未註冊套件,但其他使用者可能。 這表示封裝仍會存在於計算機上。

    若要檢查此問題,請將 新增 -AllUsers 至稍早在提升許可權的PowerShell提示字元中使用的相同 Get-AppxPackage Cmdlet:

    Get-AppxPackage *calculator* -AllUsers
    

    如果應用程式詳細數據傳回成功,表示套件存在。

    使用下列其中一個 Cmdlet 來嘗試註冊此用戶的應用程式。

    除非您想要向系統管理員註冊應用程式,而不是使用者,否則請務必不要使用提升許可權的 PowerShell 提示字元。

    Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.WindowsCalculator_8wekyb3d8bbwe
    
    Add-AppxPackage -path "c:\Program Files\WindowsApps\Microsoft.WindowsCalculator_11.2210.0.0_x64__8wekyb3d8bbwe\AppxManifest.xml" -DisableDevelopmentMode -Register
    

    針對系統應用程式,XML 路徑稍有不同:

    Add-AppxPackage -Path "C:\Windows\SystemApps\Microsoft.Windows.Search_cw5n1h2txyewy\AppXManifest.xml" -DisableDevelopmentMode -Register
    

    注意

    請務必從未提高許可權的提示使用 Add-AppxPackage Cmdlet,或將套件註冊給系統管理員,而不是使用者。

  4. 針對 XML 路徑,您必須檢查已安裝的版本。 您可以使用 Cmdlet,從提升權限的 PowerShell 提示 dir 字元執行此動作:

    dir "c:\Program Files\WindowsApps\Microsoft.WindowsCalculator*"
    

    輸出如下所示:

    Directory: C:\Program Files\WindowsApps
    
    Mode                 LastWriteTime         Length Name 
    d-----        <Date>     <Time>                Microsoft.WindowsCalculator_11.2210.0.0_x64__8wekyb3d8bbwe
    
  5. 如果應用程式在基本重新註冊之後仍然無法啟動,請嘗試使用 Reset-AppxPackage Cmdlet 將應用程式還原至原始組態。 如果應用程式仍然無法運作,也許應用程式的套件已損毀或遺失某些元件。 使用 Microsoft Store (public 或 private) 或 Windows 封裝管理員 (winget) 取得機器的新套件。 如需詳細資訊,請參閱針對應用程式無法開始使用 Windows 封裝管理員 進行疑難解答。

  6. 針對單一應用程式,您可以使用 winget 命令。 若要搜尋應用程式,請使用下列命令:

    winget search <AppName>
    

    確認您想要的應用程式可供使用之後,您可以使用下列命令加以安裝:

    winget install <AppName>
    

    winget 工具會啟動安裝程式,並在您的電腦上安裝應用程式。 例如:

    顯示搜尋Microsoft PowerToys 結果的螢幕快照。

    若要避免授權提示,您可以使用小型的腳本命令:

    winget install --exact --silent --accept-source-agreements --accept-package-agreements XP89DCGQ3K6VLD --source msstore
    

    您可以使用 winget 搜尋來搜尋可用的應用程式。 應用程式標識碼可以從搜尋提取。

  7. 檢查系統安裝程式是否有適當的設定可下載並安裝 AppX 套件。

  8. 如果 Microsoft Store 啟動或先前移除時發生問題,請嘗試重新安裝。

    注意

    不支援移除 Microsoft Store。 如需詳細資訊,請參閱 不支援移除、卸載或重新安裝 Microsoft Store 應用程式。

  9. 如果應用程式仍然失敗,下列事件記錄可能會很有説明。

    • 應用程式事件記錄檔
    • 系統事件記錄檔
    • Microsoft-Windows-AppXDeploymentServer/Operational (Applications and Services\Microsoft\Windows\AppXDeployment-Server
    • Microsoft-Windows-TWinUI/Operational (Applications and Services\Microsoft\Windows\Apps
    • 系統管理員 (應用程式和服務\Microsoft\Windows\AppModel-Runtime

常見問題與解決方案

使用 PowerShell 移除 Appx 套件

您可以使用 Remove-AppxPackage appx Cmdlet 來移除 Appx 套件。 Cmdlet 可用於下列其中一種案例:

  • 應用程式無法運作。 您要重新安裝應用程式來解決故障。
  • 您需要移除不需要的收件匣應用程式。
  • 您必須卸載安全性軟體標示為易受攻擊的應用程式。

警告

拿掉 Appx 套件是無法復原的。 請確定您是從正確的使用者內容執行這些命令,並針對正確的套件執行。

警告

不支援移除Microsoft市集應用程式。 您可以在這裡找到詳細資訊。

若要移除應用程式,請遵循下列步驟:

判斷您要移除的應用程式是否已針對用戶帳戶註冊或安裝。

Get-AppxPackage -Name <App_name>

如果您可以看到上述命令的輸出,則會為用戶帳戶註冊應用程式。

無法移除某些 Appx 套件,例如 System Apps。 Cmdlet 輸出Get-AppxPackage中的 NonRemovable 屬性會指出是否可以移除 Appx 套件。 請確定您嘗試移除的套件未 將 NonRemovable 屬性設定為 True

現在您可以使用 Remove-AppxPackage Cmdlet 來移除使用者帳戶的應用程式。

Remove-AppxPackage -Package '<package_name>'

若要移除電腦上所有使用者帳戶的應用程式,您可以新增 -AllUsers 參數。 執行命令需要系統管理員許可權。

Remove-AppxPackage -Package '<package_name>' -AllUsers

注意

將 <package_name> 取代為您想要移除的套件。

Remove-AppxPackage 命令有其他參數,可用來自定義其行為。 如需命令的詳細資訊,請參閱 Remove-AppxPackage

應用程式遭到封鎖

您會收到下列記錄:

Log Name: Microsoft-Windows-AppXDeploymentServer/Operational 
Source: Microsoft-Windows-AppXDeployment-Server 
Event ID: 404 
Level: Error 
Keywords: AppXDeploymentServer Keyword 
Description: 
AppX Deployment operation failed for package Microsoft.Windows.StartMenuExperienceHost_10.0.22621.1_neutral_neutral_cw5n1h2txyewy with error 0x80073D01. The specific error text for this failure is: error 0x800704EC: Deployment of package Microsoft.Windows.StartMenuExperienceHost_10.0.22621.1_neutral_neutral_cw5n1h2txyewy **was blocked by AppLocker**. 
Log Name: Microsoft-Windows-AppLocker/Packaged app-Execution 
Source: Microsoft-Windows-AppLocker 
Event ID: 8022 
Level: Error 
Description: 
MICROSOFT.WINDOWS.SEARCH was prevented from running. 
Log Name: Microsoft-Windows-TWinUI/Operational 
Source: Microsoft-Windows-Immersive-Shell 
Event ID: 5961 
Level: Error 
Description: 
Activation for MicrosoftWindows.Client.CBS_cw5n1h2txyewy!FESearchUI failed. Error code: **This program is blocked by group policy**. For more information, contact your system administrator. Activation phase: Deployment

您需要移除 AppLocker 限制。 若要讓 AppLocker 停止執行其規則,必須依序發生兩件事:

  1. 用戶端電腦上的有效原則已清空。
  2. AppLocker 服務已停用。

即使服務已停止,而且規則已從使用者介面中刪除,AppLocker 規則仍會維持強制執行狀態。 當組策略系統管理員刪除所有 AppLocker 規則,並在單一組策略更新中停用 AppLocker 服務時,就會發生這種情況。 其效果在於AppLocker服務會在用戶端電腦上更新有效原則之前停用。 因此,會繼續強制執行AppLocker規則。

解決方案

若要解決此問題,請移除所有 AppLocker 規則並停止服務。 也就是說,刪除組策略物件 (GPO) 中的所有 AppLocker 規則,推送該更新以允許在用戶端電腦上套用空的 AppLocker 原則,然後個別停用這些客戶端電腦上的服務。 如需詳細資訊,請參閱 停止服務后仍強制執行的AppLocker規則。

若要終止 AppLocker 規則強制執行,請遵循下列步驟:

  1. 備份包含目前套用AppLocker規則的 GPO。
  2. 刪除該 GPO 上的所有 AppLocker 規則。 如需詳細步驟,請參閱 AppLocker 原則程式
  3. 將包含空白 AppLocker 原則的 GPO 推送至受影響的用戶端電腦。 如需詳細步驟,請參閱 重新整理AppLocker原則
  4. 在所有受影響的用戶端計算機上停用AppLocker服務 (appidsvc)。 您可以選擇性地重新啟動服務。 如需詳細步驟,請參閱 設定應用程式識別服務。 或者,您可以使用組策略來停用 AppLocker 服務,而不是在本機停用。
  5. 或者,如果您想要使用另一組 AppLocker 規則來更新電腦(且服務已啟用),您可以針對已修訂的 AppLocker 原則強制組策略更新。 如需詳細步驟,請參閱 重新整理AppLocker原則

在登錄機碼或資料夾上設定不正確的許可權

一般規則不是修改作業系統所擁有的登錄機碼許可權。 即使為了強化目的,也不建議您從 Windows 變更登錄機碼、檔案或資料夾的許可權或擁有權。 該動作可能會中斷您的系統,而且可能需要重建才能修正。

應用程式會安裝以在使用者內容中執行,並要求使用者和 所有應用程式套件 能夠啟動的正確許可權。

權限問題通常會發生在資料夾或登錄區上,包括:

  • C:\Program Files\WindowsApps
  • C:\ProgramData\Microsoft\Windows\AppRepository
  • C:\Users
  • HKCU\Software\Classes
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
  • HKLM\SOFTWARE\Microsoft\OLE

您可以在 PowerShell 中使用下列 Get-Acl Cmdlet 來檢查資料夾權限:

Get-Acl -Path HKLM:\SOFTWARE\Microsoft\OLE | Format-List
Get-Acl C:\ProgramData\Microsoft\Windows\AppRepository

您也可以使用行程監視器工具來追蹤應用程式無法啟動。 請參閱 針對應用程式無法開始使用行程監視器進行疑難解答。

如果使用行程監視器工具不是選項,您可以針對工作計算機檢查上述資料夾。 從沒有原則的組織單位 (OU) 中的新電腦開始,並逐一新增它們,直到應用程式中斷為止。

找到不正確的許可權之後,請嘗試修正許可權,以避免系統完全重建的可能性。 請小心進行更正變更,並注意許可權變更的來源。 如果在進行變更之前未識別不正確的原則,原則重新套用可能會抹除所有艱苦的工作。 執行調查時,或許會移至個別的 OU 或封鎖原則應用程式。

請記住,從 OU 行動電腦不會自動將所有許可權重設為預設值。 它們必須明確關閉,而不是設定為 [未設定]。 這類似於在設定 [關閉點選] 之前不會變更「開啟點選」的原則。 [未設定 ] 不會變更 [開啟] 狀態。

如果您不確定哪個 GPO 會影響系統並套用許多 GPO,請嘗試使用命令提示字元作為測試來重設本地組原則設定。 此動作只會將值設定為預設值,因此,如果原則設定為 [已啟用],且預設設定為 [未設定為停用] 狀態,它實際上不會停用對應的登錄設定,如上述所述。

若要使用命令提示字元重設組策略設定,請使用下列步驟:

  1. 以系統管理員身分開啟命令提示字元視窗。

  2. 輸入下列命令以重設所有組策略設定,然後按 Enter

    RD /S /Q "%WinDir%\System32\GroupPolicyUsers" && RD /S /Q "%WinDir%\System32\GroupPolicy" 
    
  3. 輸入下列命令以更新本地組原則控制台中的變更,然後按 Enter

    gpupdate /force
    
  4. 重新啟動電腦(並非必要,但建議使用)。

完成這些步驟之後,命令會刪除將組策略設定儲存在裝置上的資料夾。 然後,Windows 10 或 Windows 11 應該重新套用預設值。

這些指示也不適合重設 「Windows 安全性」(本機安全策略) 區段下的對象,因為它們會儲存在不同的位置。

如果許可權不正確,請一律從最高層級套用,並允許向下繼承至您的目標目錄。

如果遺漏略過周遊檢查用戶權力,目錄的許可權可能正確,但用戶無法使用任何繼承的許可權。 檢查您是否未在略過周遊檢查中遺漏任何人(Windows 10)。

顯示略過周遊檢查屬性的螢幕快照。

最後,如果您找不到造成問題的許可權問題,而且只涉及少數計算機,則復原計算機並將它重新整理到乾淨的映射可能會解決問題。

資料收集

在連絡Microsoft支援之前,您可以收集問題的相關信息。

必要條件

如需工具組正確執行的必要條件,請參閱 TroubleShootingScript 工具組 (TSSv2) 簡介。

在連絡Microsoft支援之前收集重要資訊

  1. 下載 TSSv2 ,並將它解壓縮到 C:\tss_tool 資料夾中。 如果您先前已下載此工具,建議您下載最新版本。 它不會在執行時自動更新。

  2. 從提升許可權的 PowerShell 命令提示字元開啟 C:\tss_tool 資料夾。

    注意

    請勿使用 Windows PowerShell 整合式腳本環境 (ISE)。

  3. 執行下列 Cmdlet,並針對執行原則變更輸入 「是至全部」的 A

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
    
  4. 執行下列 Cmdlet 以開始追蹤並收集事件記錄檔。

    .\tss.ps1 -scenario PRF_UWP
    
    .\tss.ps1 -CollectLog PRF_AppX
    

追蹤會儲存在 C:\MSDATA 資料夾中的壓縮檔案中。 建立支援案例之後,此檔案可以上傳至安全工作區進行分析。