无忧启动论坛
标题:
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重装应用:
Add-AppxPackage -Register "C:\Program Files\WindowsApps\*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -Register "C:\Windows\SystemApps\*\AppxManifest.xml" -DisableDevelopmentMode
删除应用安装记录,pe下提权运行
@echo off
:INPUTdrive
set tgdrive=J:
set /p tgdrive=请输入要修改的系统盘(如%tgdrive%):
if not exist "%tgdrive%\*" (if exist "%tgdrive%:\*" (set "tgdrive=%tgdrive%:") else (goto :INPUTdrive))
del %tgdrive%\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Deployment.srd /f
del %tgdrive%\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Deployment.srd-shm /f
del %tgdrive%\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Deployment.srd-wal /f
del %tgdrive%\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Machine.srd /f
del %tgdrive%\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Machine.srd-shm /f
del %tgdrive%\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Machine.srd-wal /f
pause
欢迎光临 无忧启动论坛 (http://wuyou.net/)
Powered by Discuz! X3.3