无忧启动论坛

标题: metro应用维护及错误代码0x80070057的又一案例 [打印本页]

作者: yiyu2012    时间: 2021-11-22 00:02
标题: metro应用维护及错误代码0x80070057的又一案例
本帖最后由 yiyu2012 于 2021-11-22 11:11 编辑

  维护了几年的windows系统长久以来有个小问题,错误代码0x80070057无法自动更新和通过商店自动安装metro应用, 网上错误代码0x80070057的解决办法,只找到修改“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX”下“IsConvergedUpdateStackEnabled” 项为0的办法,但无任何效果。只好通过商店下载应用缓存,再使用powershell命令更新metro应用,系统补丁则通过dism++更新。这次维护,先是排除了服务问题,而后又尝试重置策略组。最终找到问题原因是开机脚本中的subst命令subst B: "G:\OneDrive云盘",挂载G盘上的onedrive云盘为B盘。这一命令造成windows update无法安装更新,微软商店无法安装应用,只能说bug10名不虚传。

  metro应用的数据除了注册表内容,实际的文件主要三部分组成:

       程序       C:\Program Files\WindowsApps
       安装记录   C:\ProgramData\Microsoft\Windows\AppRepository
       用户数据   C:\Users\%username%\AppData\Local\Packages

  其中程序和安装记录得放在系统盘,而用户数据可以通过目录链接转移到别的分区。直接删除程序文件夹会残留安装记录,即使通过dism++清理残余Appx组件也是无法清理干净的。有残余记录时,powershell重装metro应用会提示找不到C:\AppxManifest.xml,要去除提示,就只有删除安装记录.srd*文件,再通过AppxManifest.xml重装应用了。而这三部分文件夹,可以通过三方工具打包成wim镜像,在保留文件夹权限的同时应用到别的系统分区,以替换原文件夹的形式进行移植。要注意的是,此种方法移植的metro应用,需要应用users权限到文件夹所有者再通过powershell运行重装命令后才能正常使用,而在windows通过镜像进行升级安装后还需要重复此操作。

  重置安全策略和策略组
  • secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose
  • rd /s /q "%windir%\System32\GroupPolicyUsers"
  • rd /s /q "%windir%\System32\GroupPolicy"
  • gpupdate /force

  重装metro应用
  • Get-AppxPackage -AllUsers| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

  通过AppxManifest.xml重装应用:
  
  删除应用安装记录,pe下提权运行








欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3