无法从 WinPE 中的 Windows 8 安装中完全删除 ProgramData

Posted

技术标签:

【中文标题】无法从 WinPE 中的 Windows 8 安装中完全删除 ProgramData【英文标题】:Cannot fully delete ProgramData from Windows 8 installation within WinPE 【发布时间】:2013-01-29 23:02:05 【问题描述】:

我有一个在 WinPE 中运行的脚本,它获取安装了 Windows 的系统驱动器并删除驱动器上的所有内容(保持文件系统完好无损)。

在处理 Windows XP/Vista/7 安装时,它可以正常工作。 attrib -S -A -H -I -R /S /D \ 运行,然后所有内容都被删除。

但是,在 Windows 8 中,我遇到了“拒绝访问”错误。出于某种原因,即使作为 WinPE 中的 SYSTEM 用户,我也无法编辑目录C:\ProgramData\Microsoft\Windows\LocationProvider。我不能使用attrib 来设置属性,我不能删除它——我什至不能cd 进入它! dir /a 只返回 File Not Found

使用rmdir /S /Q 会出现“拒绝访问”错误。

【问题讨论】:

您是否在多个系统上看到过这种情况,或者只在一个特定的系统上看到过这种情况?在后一种情况下,可能存在文件系统损坏。在前一种情况下,可能是权限问题,您是否检查了该目录上设置的 ACL? 啊,老实说,我不知道如何在命令行上检查ACL(这是WinPE,所以只有cmd.exe)。这在我处理过的每个 Windows 8 系统上都很明显 - 它实际上是我正在尝试修复的软件错误(专有,无法显示代码)。 您可能只需要检查工作系统上该目录的权限即可;当操作系统关闭时,它们不太可能与运行时不同。但是检查权限的命令行工具是icacls.exe;默认情况下,它不包含在 WinPE 中,IIRC,因此您需要明确地将副本添加到您的图像中,或者将一个副本放在外部媒体或网络共享上,或其他任何地方。 你是对的,icacls.exe 不包含在 WinPE 中。就是这样 - 它必须使用当前文件,没有网络连接,并且没有任何系统的先前知识。我唯一能改变的是运行和删除程序的程序。为了便于使用,您会推荐任何针对 ACL 的 Win32API 调用吗? 第一步是在单个系统上使用 icacls.exe 来发现权限是否真的是问题所在。如果是的话,处理起来也不是那么难。这可能只是启用恢复权限的问题。但可能还有其他事情正在发生。 【参考方案1】:

假设问题与权限和/或所有权有关,您可以使用内置的 robocopy 工具解决它 - 幸运的是,它包含在 Windows PE 中。

首先,创建一个空目录,例如x:\empty,然后运行

robocopy /e /purge /b x:\empty c:\

/b 标志告诉 robocopy 使用绕过安全性的备份模式。

【讨论】:

【参考方案2】:

遇到了同样的问题。您需要先take ownership,例如使用takeown.exe。然后修复权限,例如使用icacls.exe。然后随心所欲地复制、移动、删除。

【讨论】:

以上是关于无法从 WinPE 中的 Windows 8 安装中完全删除 ProgramData的主要内容,如果未能解决你的问题,请参考以下文章

WinPE什么意思

U盘启动 WinPE系统维护工具 任意安装GHO/WIM/ESD系统映像 无广告专业版

从 WinPE 提示符访问 USB 驱动器

无法从命令提示符执行 ISETool.exe (Windows 8)

windows无法安装到这个磁盘 gpt分区形式

适用于Windows ADK 2004 维护版 SCCM PXE WinPE