注意
本文主要提供給支援專員與 IT 專業人員使用。 如果您要尋找更多一般資訊,請參閱 修復 Windows 中的應用程式和程式。
新式應用程式或Microsoft市集應用程式有時可能無法啟動或啟動,然後停止回應。 本指南討論可用來針對這類問題進行疑難解答的疑難解答技術。
疑難排解檢查清單
- 確認是否已為用戶註冊或安裝應用程式。
- 為使用者重新註冊應用程式,可能會解決啟用問題。
- 如果您未收到 Get-AppxPackage Cmdlet 的回應,您仍然可以使用 Add-AppxPackage Cmdlet。
- 針對 XML 路徑,您必須檢查已安裝的版本。
- 如果應用程式在重新註冊之後仍然無法啟動,可能是應用程式的套件已損毀或遺失某些元件。
- 針對單一應用程式,您可以使用 winget 命令。
- 檢查系統安裝程式是否有適當的設定可下載並安裝 AppX 套件。
- 如果 Microsoft Store 啟動或先前移除時發生問題,請嘗試重新安裝。
- 如果應用程式仍然失敗,某些事件記錄可能會很有説明。
以下是詳細的疑難解答檢查清單:
-
新式應用程式會部署為封裝到計算機,然後需要針對登入的每個用戶個別註冊。 每個應用程式的記錄都會保留在每部計算機上,以及哪些用戶已註冊。 例如,若要查看個別使用者是否已安裝計算機應用程式,請在非刪除的 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
即使應用程式顯示為已為您的使用者註冊,有時重新註冊使用者的應用程式還是可以解決啟用問題,因為它會修復套件的任何遺漏專案。 在相同的非刪除 PowerShell 提示字元中使用下列 Cmdlet(本範例適用於計算機應用程式):
Get-AppxPackage *calculator*| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
注意
請注意,如何使用管道
|
Cmdlet 將 Cmdlet 的輸出Get-AppxPackage
傳回至Add-AppxPackage
Cmdlet。 只有當封裝已經註冊時,才能運作。如果您未收到 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,或將套件註冊給系統管理員,而不是使用者。針對 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
如果應用程式在基本重新註冊之後仍然無法啟動,請嘗試使用 Reset-AppxPackage Cmdlet 將應用程式還原至原始組態。 如果應用程式仍然無法運作,也許應用程式的套件已損毀或遺失某些元件。 使用 Microsoft Store (public 或 private) 或 Windows 封裝管理員 (winget) 取得機器的新套件。 如需詳細資訊,請參閱針對應用程式無法開始使用 Windows 封裝管理員 進行疑難解答。
針對單一應用程式,您可以使用
winget
命令。 若要搜尋應用程式,請使用下列命令:winget search <AppName>
確認您想要的應用程式可供使用之後,您可以使用下列命令加以安裝:
winget install <AppName>
winget 工具會啟動安裝程式,並在您的電腦上安裝應用程式。 例如:
若要避免授權提示,您可以使用小型的腳本命令:
winget install --exact --silent --accept-source-agreements --accept-package-agreements XP89DCGQ3K6VLD --source msstore
您可以使用 winget 搜尋來搜尋可用的應用程式。 應用程式標識碼可以從搜尋提取。
如果 Microsoft Store 啟動或先前移除時發生問題,請嘗試重新安裝。
注意
不支援移除 Microsoft Store。 如需詳細資訊,請參閱 不支援移除、卸載或重新安裝 Microsoft Store 應用程式。
-
- 應用程式事件記錄檔
- 系統事件記錄檔
- 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 停止執行其規則,必須依序發生兩件事:
- 用戶端電腦上的有效原則已清空。
- AppLocker 服務已停用。
即使服務已停止,而且規則已從使用者介面中刪除,AppLocker 規則仍會維持強制執行狀態。 當組策略系統管理員刪除所有 AppLocker 規則,並在單一組策略更新中停用 AppLocker 服務時,就會發生這種情況。 其效果在於AppLocker服務會在用戶端電腦上更新有效原則之前停用。 因此,會繼續強制執行AppLocker規則。
解決方案
若要解決此問題,請移除所有 AppLocker 規則並停止服務。 也就是說,刪除組策略物件 (GPO) 中的所有 AppLocker 規則,推送該更新以允許在用戶端電腦上套用空的 AppLocker 原則,然後個別停用這些客戶端電腦上的服務。 如需詳細資訊,請參閱 停止服務后仍強制執行的AppLocker規則。
若要終止 AppLocker 規則強制執行,請遵循下列步驟:
- 備份包含目前套用AppLocker規則的 GPO。
- 刪除該 GPO 上的所有 AppLocker 規則。 如需詳細步驟,請參閱 AppLocker 原則程式。
- 將包含空白 AppLocker 原則的 GPO 推送至受影響的用戶端電腦。 如需詳細步驟,請參閱 重新整理AppLocker原則。
- 在所有受影響的用戶端計算機上停用AppLocker服務 (appidsvc)。 您可以選擇性地重新啟動服務。 如需詳細步驟,請參閱 設定應用程式識別服務。 或者,您可以使用組策略來停用 AppLocker 服務,而不是在本機停用。
- 或者,如果您想要使用另一組 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,請嘗試使用命令提示字元作為測試來重設本地組原則設定。 此動作只會將值設定為預設值,因此,如果原則設定為 [已啟用],且預設設定為 [未設定為停用] 狀態,它實際上不會停用對應的登錄設定,如上述所述。
若要使用命令提示字元重設組策略設定,請使用下列步驟:
以系統管理員身分開啟命令提示字元視窗。
輸入下列命令以重設所有組策略設定,然後按 Enter:
RD /S /Q "%WinDir%\System32\GroupPolicyUsers" && RD /S /Q "%WinDir%\System32\GroupPolicy"
輸入下列命令以更新本地組原則控制台中的變更,然後按 Enter:
gpupdate /force
重新啟動電腦(並非必要,但建議使用)。
完成這些步驟之後,命令會刪除將組策略設定儲存在裝置上的資料夾。 然後,Windows 10 或 Windows 11 應該重新套用預設值。
這些指示也不適合重設 「Windows 安全性」(本機安全策略) 區段下的對象,因為它們會儲存在不同的位置。
如果許可權不正確,請一律從最高層級套用,並允許向下繼承至您的目標目錄。
如果遺漏略過周遊檢查用戶權力,目錄的許可權可能正確,但用戶無法使用任何繼承的許可權。 檢查您是否未在略過周遊檢查中遺漏任何人(Windows 10)。
最後,如果您找不到造成問題的許可權問題,而且只涉及少數計算機,則復原計算機並將它重新整理到乾淨的映射可能會解決問題。
資料收集
在連絡Microsoft支援之前,您可以收集問題的相關信息。
必要條件
如需工具組正確執行的必要條件,請參閱 TroubleShootingScript 工具組 (TSSv2) 簡介。
在連絡Microsoft支援之前收集重要資訊
下載 TSSv2 ,並將它解壓縮到 C:\tss_tool 資料夾中。 如果您先前已下載此工具,建議您下載最新版本。 它不會在執行時自動更新。
從提升許可權的 PowerShell 命令提示字元開啟 C:\tss_tool 資料夾。
注意
請勿使用 Windows PowerShell 整合式腳本環境 (ISE)。
執行下列 Cmdlet,並針對執行原則變更輸入 「是至全部」的 A 。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
執行下列 Cmdlet 以開始追蹤並收集事件記錄檔。
.\tss.ps1 -scenario PRF_UWP
.\tss.ps1 -CollectLog PRF_AppX
追蹤會儲存在 C:\MSDATA 資料夾中的壓縮檔案中。 建立支援案例之後,此檔案可以上傳至安全工作區進行分析。