带有 NTFS 的无许可外部驱动器

use*_*889 53 ntfs permissions external-hard-drive

我有一个外部硬盘,它有 1 个分区,格式化为 NTFS。我在多台计算机上使用这个驱动器,在不同的机器上使用不同的登录名,Windows XP 和 Windows 7。所有文件都是普通的旧文件,不是操作系统加密或压缩的。

Windows 7 不时让我访问某些文件,理由是权限问题。我可以通过获取所有权和设置适当的权限来规避这种情况。然而,这很乏味。有没有一种简单的方法可以告诉 Windows 不对分区上的任何文件/目录强制执行或存储任何权限?

har*_*ymc 40

您的外部驱动器已使用支持访问限制的 NTFS 文件系统进行格式化。

不幸的是,虽然某些用户和安全组内置于 Windows 并具有在所有机器上都相同的预定义安全 ID(例如每个人),但其他用户和组的 SID 来自它们定义的机器。

要使情况正常化,您应该:

  1. 以管理员身份登录后,右键单击驱动器的根目录并选择Properties
  2. 单击“安全”选项卡,然后 单击“高级”按钮
  3. 在驱动器的“高级安全设置”对话框中,单击“所有者”选项卡,然后单击 “编辑”按钮
  4. 单击管理员组,选中替换子容器和对象的所有者,然后单击确定。如果系统询问是否将现有权限替换为授予您完全控制权的权限,请单击
  5. 返回“安全”选项卡并再次在原始“属性”表上,单击“编辑”按钮,然后在“安全”对话框中为“组或用户名”下列出的所有帐户的所有条目单击“删除”,除了众所周知的 System、管理员、用户和经过身份验证的用户。
  6. 单击“添加”,然后在“输入要选择的对象名称”下的“选择用户、计算机或组”对话框中,键入Everyone并单击“确定”。您应该验证Everyone已添加到列表中。
  7. 单击“所有人”,选中“完全控制”,然后单击“应用”
  8. 再次单击“高级”返回“高级安全设置”对话框,然后单击“更改权限”按钮。选中替换所有子对象的权限条目,然后单击确定确定
  9. 单击“确定”

以后注意不要为驱动器的子文件夹分配单独的访问权限(保留所有权限为继承)。如果再次发生这种情况,请重复“替换所有子对象上的权限条目”的步骤。

请注意,在 Windows 7/8 下,Guest 帐户不属于 Everyone 组。如果您需要它,您必须为Everyone 组添加上述Guest。

如果您遇到 UAC 问题,请尝试通过“以管理员身份运行”使用资源管理器。

  • 以上是正确的解决方案,也是处理可能由多个用户帐户或在不同计算机上使用的外部 NTFS 驱动器的唯一简单方法。如果您想要将某些文件设为私有,您始终可以使用 TrueCrypt 之类的工具来将文件夹及其内容设为私有。 (2认同)
  • UAC...我的死敌。2 稍后重新启动,并稍后执行 `takeown /fe:\ /r /dy`,一切又恢复正常。 (2认同)
  • @JonBentley:您可能对 UAC 有问题。尝试通过“以管理员身份运行”使用资源管理器。 (2认同)

小智 11

上面的例子:

takeown /f f:\ /r /d y
Run Code Online (Sandbox Code Playgroud)

将所有者分配给当前用户。要将所有者分配给管理员组,请添加/a选项,例如:

takeown /f f:\ /a /r /d y
Run Code Online (Sandbox Code Playgroud)

这将完成harrymc 解决方案的第1-4 步。

请注意,这/d y取决于本地化,对于德语本地化,例如/D j.


woe*_*ens 9

takeown 是摆脱这种脑残权限系统的最简单工具。

以管理员身份启动一个cmd(右键cmd图标,以管理员身份运行),然后输入

takeown /f [root dir of drive] /r /d y
Run Code Online (Sandbox Code Playgroud)

驱动器 F 的示例:

c:\>takeown /f f:\ /r /d y
Run Code Online (Sandbox Code Playgroud)

  • 注意 Windows Vista/7 中的连接点之类的东西,它最终会递归到我的“F:\Documents And Settings”,它链接到“C:\Users”。 (2认同)