【问题标题】:Cannot fully delete ProgramData from Windows 8 installation within WinPE无法从 WinPE 中的 Windows 8 安装中完全删除 ProgramData
【发布时间】: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 来发现权限是否真的是问题所在。如果是的话,处理起来也不是那么难。这可能只是启用恢复权限的问题。但可能还有其他事情正在发生。

标签: windows windows-8 permissions winpe programdata


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-05-01
      • 1970-01-01
      • 2017-09-29
      • 2015-06-08
      • 1970-01-01
      • 2017-03-07
      • 2014-01-09
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多