在磁盘范围内重置NTFS权限


11

有人在设置NTFS驱动器上的权限时主要搞砸了,我正在寻找一种将所有权限重置为默认值的方法。该操作系统将被重新安装,但我正尝试从其用户目录中挽救数据。

没有数据在FS级别被加密。

关于如何实现这一目标的任何建议?

Answers:


16

如果您要谈论的磁盘不包含Windows安装,则只需使用“ TAKEOWN”和“ ICACLS”实用程序:

TAKEOWN /f "X:\" /r /d y
ICACLS "X:\" /reset /T

然后,您可以将ACL重置为所需的内容。

如果它是装有Windows 2000,XP或Server 2003操作系统的磁盘(此磁盘上不了解Vista),则可以尝试重新应用默认的安全模板:

secedit /configure /db secedit.sdb /cfg %SystemRoot%\defltwk.inf /overwrite /verbose

(在Windows Server安装上,将“ defltsv.inf”替换为“ defltwk.inf”。)


您可能需要将以下选项添加到icals命令中:(/C继续出现文件错误)和/Q(禁止显示成功消息)。错误消息仍将显示。
mivk 2012年

1
在Win7 x64中,引用驱动器时出现错误。对于icacls,我无法直接指定驱动器。所以我不得不使用takeown /F X:\ /R /D Yicacls X:\* /reset /T
mivk 2012年

实际上微软似乎已经改变了,至少他们的头脑上SECEDIT的实用程序(安全)这个任务。该方法实际上对所有AFAICT都没有影响(很多注册表项,但是系统文件夹很少,Windows主要是注册表项)。因此,总而言之,我知道的唯一可靠的方法是将ACL与另一个受信任的系统进行比较
mirh,

2

作为takeown和* cacls的替代方法,您可以使用SetACL首先获取驱动器上每个文件和目录的所有权,然后设置所需的权限。

将整个树的所有者设置为管理员,并在子对象上启用继承

SetACL.exe -on "C:\" -ot file -actn setprot -op "dacl:np;sacl:nc" 
           -rec cont_obj -actn setowner -ownr "n:S-1-5-32-544;s:y"

为管理员添加完整权限:

SetACL.exe -on "C:\" -ot file -actn ace -ace "n:S-1-5-32-544;s:y;p:full"

0

我不确定是否存在这样的事情。也就是说,除非您正在对系统进行映像处理,否则可以在不删除用户数据的情况下重新安装操作系统,这也将修复与操作系统相关的文件夹的权限。根据系统的类型和可用的类型,将驱动器放入另一个系统并拉出用户数据,然后进行擦除并重新安装。


0

我从来没有听说过任何将“重置”所有权限回到空白状态的东西,除非“从备份中恢复”计数。

即使这样做,也需要一种方法来了解谁拥有哪些文件,以及注册表权限和其他ID信息。很有可能会搞砸,并且您会有一个随机运行的系统,除非所讨论的程序具有初次安装时机器状态的快照...在这种情况下,情况是相同的作为备份。仅通过添加用户并在计算机上的第一位安装操作系统,您就可能更改了权限和ID(安全ID),因为Windows在ACL中具有某些特定于安装的内容。

最好的选择是备份用户数据并擦除磁盘,然后重新安装,然后再将用户数据复制回正确的文件夹中,然后制作系统的备份映像。

这是RAID无法提供帮助但良好备份的情况之一(有很多新手管理员似乎认为RAI​​D是备份;在这种情况下,它无济于事!)


虽然我同意您无法还原任何自定义安全设置,但是您可以重新应用默认的安全模板并回到操作系统默认的安全性。
埃文·安德森

如果他通过应用程序具有自定义安全性,那么使用它不会造成潜在的问题吗?由于某种原因,我回避了它,因为它可能会导致意想不到的行为……还是有所改善?
巴特·

如果您已将安全性从默认值修改为适应某些软件,则必须在恢复默认值后再次对其进行修改。在我看来,应该是“预期”的行为。如果您更改了默认值,然后又将其更改回默认值,则它将再次恢复为默认值。
埃文·安德森

0

我看不到有办法让它们恢复到仅使用一个盒子的方式,但是如果您有第二个盒子,可以用作替代品或临时存放区(即使是配备高清硬盘的PC也可以)。临时分段),这是一种解决方案。您可能在这里可以选择一些捷径,但我更喜欢缓慢而细致的方式,因为它不易出现人为错误。

假设服务器A是具有错误权限的服务器,服务器B是替换服务器或临时登台区域。

  • 从上次正常备份还原到服务器B(确保您选择了还原安全性的选项)。
  • 在服务器A上,确定是否可以访问数据。
    • 如果不是,请通过GUI或命令行获取所有内容的所有权。
    • 确定您是否可以立即访问数据。
    • 如果没有,请授予自己“完全控制”权限。
  • 使用xcopy / S / E / C / H / R / K / Y将数据从服务器A复制到服务器B。不要使用/ O,因为那样会覆盖恢复的ACL。
  • 如果它是替代服务器,那么您就完成了。如果不是,则在重建服务器A之后,这次使用xcopy / S / E / C / H / R / K / O / Y从服务器B复制回它(注意,这一次是/ 0)。
  • 与做这件事的人在角落里说些安静的话。棒球棍和取消其管理员权限的威胁可能是可选的,也可能不是可选的,具体取决于您的感受。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.