有人在设置 NTFS 驱动器的权限时犯了大错,我正在寻找一种方法将所有权限重置为默认值。操作系统将重新安装,但我正在尝试从他们的用户目录中挽救数据。
没有任何数据在 FS 级别加密。
关于如何实现这一目标有什么建议吗?
答案1
如果您谈论的磁盘不包含 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”。)
答案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"
答案3
我不确定这样的事情是否存在。也就是说,除非您正在对系统进行映像处理,否则可以重新安装操作系统而无需删除用户数据,这也会修复操作系统相关文件夹的权限。根据系统的类型和可用内容,将驱动器放入另一个系统并提取用户数据,然后执行擦除并重新安装。
答案4
我不知道有什么方法可以让事情回到只使用一个盒子的状态,但是如果你有第二个盒子可用,无论是作为替代品还是临时暂存区(即使是带有大量硬盘的 PC 也可以作为临时暂存区),这里有一个解决方案。这里可能有一些捷径可以走,但我更喜欢缓慢而细致的方式,因为它不容易出现人为错误。
我们假设服务器 A 是权限有问题的服务器,而服务器 B 是替代服务器或临时暂存区。
- 从上次正确的备份恢复到服务器 B(确保在执行此操作时选择了恢复安全性的选项)。
- 在服务器 A 上,确定您是否可以访问数据。
- 如果没有,请通过 GUI 或命令行来获取一切所有权。
- 确定您现在是否可以访问数据。
- 如果没有,请授予自己完全控制权。
- 使用 xcopy /S/E/C/H/R/K/Y 将数据从服务器 A 复制到服务器 B。不要使用 /O,因为这会覆盖您恢复的 ACL。
- 如果是替换服务器,则大功告成。如果不是,则在重建服务器 A 后,从服务器 B 复制回服务器 A,这次使用 xcopy /S/E/C/H/R/K/O/Y(注意,这次这里是 /0)。
- 找个角落,和肇事者小声说几句。棒球棒和威胁撤销其管理员权限可能是可选的,也可能不是,这取决于你的感受。