![Sysprep.exe 致命错误,无法删除 Windows 8 中的 Metro 应用以使其正常运行](https://linux22.com/image/1436309/Sysprep.exe%20%E8%87%B4%E5%91%BD%E9%94%99%E8%AF%AF%EF%BC%8C%E6%97%A0%E6%B3%95%E5%88%A0%E9%99%A4%20Windows%208%20%E4%B8%AD%E7%9A%84%20Metro%20%E5%BA%94%E7%94%A8%E4%BB%A5%E4%BD%BF%E5%85%B6%E6%AD%A3%E5%B8%B8%E8%BF%90%E8%A1%8C.png)
今天我使用 sysprep.exe 重建我的 Windows 映像。但它总是说“尝试 sysprep 时发生致命错误”。
然后我去检查setupact.log文件,它显示如下
我按照这个说明Microsoft 知识库文章但是当我Get-AppxPackage -AllUser
在 powershell 中执行时,它显示很多由未知用户安装的应用程序,例如
我无法通过 删除它们Remove-AppxPackage
。那么有什么解决方案可以删除这些应用程序吗?或者只是一劳永逸地删除这个未知用户?
答案1
我自己摸索出来的。我会添加一些关键提示,方便其他人搜索。
setupact.log 文件将显示如下内容:
错误 SYSPRP 程序包 Microsoft.Internal.Media.PlayReadyClient_2.3.1678.1_x64__8wekyb3d8bbwe 已为用户安装,但并未为所有用户配置。此程序包在 sysprep 映像中无法正常运行。
当你想通过 PowerShell 删除 Windows 8 应用程序时,它会说应用程序是由未知用户安装的,其 sid 是S-1-5-21-XXXX
。当你Remove-AppxPackage
在 powershell 中执行时,它会说
因为当前用户没有安装该包
据我所知,Remove-AppxPackage 只能删除属于您登录的用户的应用程序。我不知道为什么我的操作系统中有一个未知用户,但这是我的解决方案。
- 删除所有文件
C:\Program Files\WindowsApps
(您需要右键单击该文件夹以更改其所有权和权限) - 删除所有文件
C:\ProgramData\Microsoft\Windows\AppRepository
(您也需要更改所有权)。
现在当您 时Get-AppxPackage -allusers
,它将什么也不显示。现在您可以运行 sysprep.exe,它将正常工作(请记住将 HKLM\SYSTEM\Setup\Status\Sysprep\SysprepStatus 更改为 7)。
答案2
对于那些因为谷歌而来到这里的人来说也是如此。
无法找到用户 ID 导致系统准备工作本身。因为它会删除所有用户的 SID,所以您无法再使用 SID 来删除应用程序。我目前正在使用 TechnetISO 中的最新更新 Win8.1 pro x64,并遇到了同样糟糕的系统准备问题。
对我来说,解决方案是删除以下应用程序
- Microsoft.VCLibs.110.00_11.0.51106.1_x86__8wekyb3d8bbwe
- Microsoft.WinJS.1.0_1.0.9200.20789_neutral__8wekyb3d8bbwe
- Microsoft.VCLibs.110.00_11.0.51106.1_x64__8wekyb3d8bbwe
- Microsoft.Media.PlayReadyClient_2.3.1678.0_x86__8wekyb3d8bbwe
- Microsoft.Media.PlayReadyClient_2.3.1678.0_x64__8wekyb3d8bbwe
- Microsoft.VCLibs.120.00.Preview_12.0.20222.1_x86__8wekyb3d8bbwe
- Microsoft.VCLibs.120.00.Preview_12.0.20222.1_x64__8wekyb3d8bbwe
我花了几个小时来导出和导入我的模板,我希望我可以为您节省几个小时的尝试和错误;)