Cha*_*eak 2 windows windows-store-apps
我的计算机遇到这种情况,每当我打开Windows应用商店应用程序或Windows应用商店本身时,启动屏幕会出现几秒钟然后崩溃.我无法使用任何Windows应用商店应用.此外,我尝试了许多不同的建议解决方案,我在互联网上找不到.
我有条不紊地跟踪每个错误日志,最后能够解决这个问题.
基于我在互联网上看到的所有投诉,这个问题似乎很普遍.
这必须是我曾经遇到的最烦人的问题之一.没有一个"简单"的解决方案对我有用,但我挖得很深,最后能够解决这个问题.这就是我做到的.(注意:一如既往,我不负责您遵循我的建议可能造成的任何损害.)
尝试通过运行以下两个命令重新安装Windows应用商店应用:
$manifest = (Get-AppxPackage Microsoft.WindowsStore).InstallLocation + '\AppxManifest.xml'
Add-AppxPackage -DisableDevelopmentMode -Register $manifest
Run Code Online (Sandbox Code Playgroud)如果您没有收到任何错误,请跳至步骤14(幸运的是!)
如果确实收到错误,请显示错误日志.首先,您必须找到错误日志的代码.
Add-AppxPackage : Deployment failed with HRESULT: 0x80073CF6, Package could not be registered. (Exception from HRESULT: 0x80073CF6)
NOTE: For additional information, look for [ActivityId] aaa7357d-bec0-0001-5f4f-a8aac0bed101 in the Event Log or use the command line Get-AppxLog -ActivityID aaa7357d-bec0-0001-5f4f-a8aac0bed101
At line:1 char:1
+ Add-AppxPackage -register "C:\Program Files\WindowsApps\Microsoft.Win ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (C:\Program File...ppxManifest.xml:String) [Add-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand
Run Code Online (Sandbox Code Playgroud)查看它所说的"...使用命令行Get-AppxLog ..."然后将Get-AppxLog中的所有内容复制并粘贴到行尾,如下所示:
Get-AppxLog -ActivityID aaa7357d-bec0-0001-5f4f-a8aac0bed101
Run Code Online (Sandbox Code Playgroud)你会看到很多输出.最后,您应该看到命令失败的确切原因.就我而言,它看起来像这样:
error 0x80070002: Reading manifest from location:
C:\ProgramData\Microsoft\Windows\AppRepository\Microsoft.WindowsStore_11602.1.26.0_neutral_split.scale-125_8wekyb3d8bbwe.xml failed with error: The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)因此,它无法找到所需的XML文件.在这种情况下,我们可以通过复制我们所拥有的文件来代替丢失的文件来"欺骗".首先,我们必须找到一个我们可以使用的适当文件.为此,请转到存储所有XML文件的目录,如下所示:
cd C:\ProgramData\Microsoft\Windows\AppRepository
Run Code Online (Sandbox Code Playgroud)接下来,列出以Microsoft.WindowsStore开头的所有文件,如下所示:
dir Microsoft.WindowsStore*
Run Code Online (Sandbox Code Playgroud)
结果如下:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 4/30/2016 10:09 AM 31341 Microsoft.WindowsStore_11602.1.26.0_x64__8wekyb3d8bbwe.xml
-a---- 4/30/2016 10:09 AM 28503 Microsoft.WindowsStore_11602.1.264.0_neutral_~_8wekyb3d8bbwe.xml
-a---- 1/29/2016 8:28 PM 28502 Microsoft.WindowsStore_2015.2524.4.0_neutral_~_8wekyb3d8bbwe.xml
-a---- 1/13/2016 9:11 AM 28065 Microsoft.WindowsStore_2015.83.24.0_neutral_~_8wekyb3d8bbwe.xml
-a---- 2/13/2016 11:43 PM 28283 Microsoft.WindowsStore_2016.272.4.0_neutral_~_8wekyb3d8bbwe.xml
-a---- 3/10/2016 9:04 AM 28503 Microsoft.WindowsStore_2016.2913.4.0_neutral_~_8wekyb3d8bbwe.xml
Run Code Online (Sandbox Code Playgroud)就我而言,我有另一个文件非常接近所需的文件.它有相同的版本号11602.1.26.0作为缺少的文件,所以我只是复制了那个.
cp Microsoft.WindowsStore_11602.1.26.0_x64__8wekyb3d8bbwe.xml C:\ProgramData\Microsoft\Windows\AppRepository\Microsoft.WindowsStore_11602.1.26.0_neutral_split.scale-125_8wekyb3d8bbwe.xml
Run Code Online (Sandbox Code Playgroud)在这里,我遇到了一个非常恼人的权限错误,这导致我又陷入了另一个兔子洞.当我试图复制该文件时,我收到此错误:
cp : Access to the path 'C:\ProgramData\Microsoft\Windows\AppRepository\Microsoft.WindowsStore_11602.1.26.0_neutral_split.language-ja_8wekyb3d8bbwe.xml' is denied.
At line:1 char:1
+ cp Microsoft.WindowsStore_11602.1.26.0_x64__8wekyb3d8bbwe.xml C:\Prog ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (C:\ProgramData\...ekyb3d8bbwe.xml:FileInfo) [Copy-Item], UnauthorizedAccessException
+ FullyQualifiedErrorId : CopyFileInfoItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.CopyItemCommand
Run Code Online (Sandbox Code Playgroud)我不得不完全控制AppRepository目录,以便能够将文件写入其中."文件属性"对话框中的标准"安全"选项卡对我不起作用,因此我安装了一个PowerShell cmdlet,允许您从PowerShell内部更改文件权限.请按照以下说明安装cmdlet.
首先,您必须在Powershell会话中启用正在运行的脚本,如下所示:
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Unrestricted
Run Code Online (Sandbox Code Playgroud)接下来,在此URL下载NTFSSecurity.zip文件 https://gallery.technet.microsoft.com/scriptcenter/1abd77a5-9c0b-4a2b-acef-90dbb2b84e85
重要信息:上述URL中的安装说明忽略了该过程的重要部分.在解压缩下载的ZIP文件之前,必须首先"取消阻止"它,如下所示:
Unblock-File C:\Users\xxxxx\Downloads\NTFSSecurity.zip
Run Code Online (Sandbox Code Playgroud)
上面的"xxxxx"是您的用户名.如果您将文件下载到其他位置,只需输入下载文件的完整路径即可.现在您已取消阻止该文件,然后您可以解压缩并按照上面的URL中的说明进行安装.我把它解压缩到这个文件夹中:
C:\Users\xxxxx\Documents\WindowsPowerShell\Modules\NTFSSecurity
Run Code Online (Sandbox Code Playgroud)然后,要安装它,我输入:
Import-Module NTFSSecurity
Run Code Online (Sandbox Code Playgroud)您现在可以授予自己对Windows Store文件夹的权限,如下所示:
Add-NTFSAccess -Path C:\ProgramData\Microsoft\Windows\AppRepository -Account JIMSURFACEPRO4\chaos -AccessRights FullControl -AccessType Allow -AppliesTo ThisFolderSubfoldersAndFiles
Run Code Online (Sandbox Code Playgroud)
对于-Account,您必须替换自己的用户帐户.要查找您的用户帐户,请键入:
whoami
Run Code Online (Sandbox Code Playgroud)现在您已拥有AppRepository目录的权限,您可以再次尝试复制命令:
cp Microsoft.WindowsStore_11602.1.26.0_x64__8wekyb3d8bbwe.xml C:\ProgramData\Microsoft\Windows\AppRepository\Microsoft.WindowsStore_11602.1.26.0_neutral_split.scale-125_8wekyb3d8bbwe.xml
Run Code Online (Sandbox Code Playgroud)继续在步骤2中(只在第二个命令),每次给你一个错误的时间运行命令,运行Get-AppxLog,找到失踪的XML文件的名称,以及现有的文件复制到丢失的文件名(第12步, 以上).最终,您将停止丢失文件错误.在我的情况下,我开始得到不同的错误,如下所示:
error 0x80070005: While processing the request, the system failed to register the windows.stateExtension extension due to the following error: Access is denied.
.
6/5/2016 7:05:32 PM 316 error 0x80070005: Cannot register the request because the following error was encountered during the registration of the windows.stateExtension extension: Access is denied.
Run Code Online (Sandbox Code Playgroud)你不会相信这一点,但我通过关闭Windows防火墙解决了这个问题.要执行此操作,请单击"开始"按钮,然后键入"防火墙",然后单击"Windows防火墙".在接下来显示的窗口中,单击"打开或关闭Windows防火墙",然后为所有网络将其关闭.

然后我终于能够成功完成命令:
Add-AppxPackage -DisableDevelopmentMode -Register $manifest
Run Code Online (Sandbox Code Playgroud)我通过点击开始按钮,键入"Store"并单击"Store"来检查Windows Store是否正常工作.它打开正常,没有崩溃.万岁!
最后,您必须修复所有剩余的应用.您可以尝试使用此命令自动重新注册所有应用程序.运行此命令时,请确保已关闭Windows应用商店.
Get-AppxPackage -allusers | foreach {Add-AppxPackage -register "$($_.InstallLocation)\appxmanifest.xml" -DisableDevelopmentMode}
Run Code Online (Sandbox Code Playgroud)但是,在我的情况下,许多应用程序仍然失败,主要是由于丢失文件.由于我注意到文件名遵循了模式,因此我能够编写这个可怕的Powershell命令来创建所有丢失的文件:
Get-AppxPackage -allusers | foreach {$scr = "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_$($_.Architecture)__$($_.PublisherId).xml"; if (Test-Path $scr) { cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_split.language-ja_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_ja-jp_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_zh-cn_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_resources.language-zh-hans_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_resources.scale-125_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_resources.scale-140_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_resources.scale-150_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_resources.language-ja_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_split.language-zh-hans_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_split.scale-100_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_split.scale-125_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_split.scale-150_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_split.scale-140_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_split.scale-200_$($_.PublisherId).xml"; cp $scr "c:\ProgramData\Microsoft\Windows\AppRepository\$($_.Name)_$($_.Version)_neutral_split.scale-180_$($_.PublisherId).xml"; } }
Run Code Online (Sandbox Code Playgroud)然后我重新运行第17步,大部分应用程序都成功了.
最后,打开Windows应用商店,单击应用,单击下载图标,然后检查更新.安装所有可用的更新.
不要忘记重新启用Windows防火墙!
如果您有任何疑问,请随时在下面发表评论!如果这确实有帮助,请告诉我.与往常一样,对于您遵循我的建议可能造成的任何损害,我概不负责.
| 归档时间: |
|
| 查看次数: |
11382 次 |
| 最近记录: |