我有一个文件夹,我无法从属于 Windows 7 管理员组的帐户访问它。
如果我打开属性上的“安全”选项卡,我会看到“您无权查看或编辑此对象的权限设置”。
如果我单击“高级”并转到所有者选项卡,它会告诉我“无法显示当前所有者”。
我可以通过重新分配所有权来访问该文件夹,但这会破坏该文件夹的当前权限。
那么,有没有办法让管理员访问该文件夹而不控制和破坏当前权限。
答案1
仔细挖掘后发现,获取所有权有时会破坏现有权限,有时则不会。这似乎完全取决于你是否尝试这样做递归地。请注意,当 Windows 要替换现有权限时,它会发出警告,但(至少在 GUI 中)您很容易在没有完全阅读或理解消息的情况下就直接同意。
要查看它,您需要一个由不同用户帐户拥有的目录(此示例中为 c:\SomeFolder),并且您和管理员组对该目录无任何访问权限。
命令行
使用命令行“takeown”工具:
TAKEOWN /A /R /F c:\SomeFolder
你应该看到类似
成功:文件(或文件夹)“c:\SomeFolder”现在归管理员组所有。
您没有权限读取目录“c:\SomeFolder”的内容
您是否要用授予您完全控制权的权限替换目录权限(“Y”表示是,“N”表示否,“C”表示取消)?
请注意,如果你在这里回答是,这确实意味着代替权限。任何现有权限都将被破坏。如果您回答否,则您仍然没有该文件夹的权限,但现在是所有者,因此可以正常授予自己权限,而不会破坏任何已存在的权限。
如果您未指定递归标志(/R),则不会收到警告,并且所有者会发生变化,而不会影响任何其他权限。
图形用户界面
您需要使用属性窗口的“安全”选项卡通过 GUI 更改任何内容。这将为您提供两个按钮:“继续”和“高级”。高级将为您提供一个包含四个选项卡的窗口:“权限”、“审核”、“所有者”和“有效权限”。继续将只为您提供“所有者”选项卡。
如果你选择新所有者并勾选“应用于子文件夹”框,点击“确定”或“应用”会弹出一个“是否要替换权限”消息框,这确实意味着代替权限。如果您不选中子文件夹框,则不会收到警告,并且一切都会按预期运行。
很容易没有完全读懂这个消息框,以为这只是另一个要求你确认一些非破坏性内容的框,然后只需按回车键即可。也很容易认为他们不可能真的意思是替换,因为没有一个理智的人会想这么做。
答案2
如果您没有在文件夹的 ACL 中被列为“可以读取/更改权限”,则您不能更改它们,无论您是谁或什么。所有用户、管理员、内置程序,甚至nt authority\system
,都受到安全代码的平等对待。(系统范围的“取得所有权”权限是一个例外,但它也不能修改 ACL,只能重置它。)
您必须以以下身份登录是可以直接(用户名+密码)执行此操作,或者 - 如果你有很多空闲时间 - 通过执行一些权限控制 巫术。
答案3
这是一个老问题,但在 Google 搜索结果中仍然排名靠前。而且缺少一个重要的答案...
实际上,可以在保留现有权限的同时授予自己访问权限,但您需要获取 subinacl.exe,这是一个最初来自 Microsoft 的 Windows 资源工具包的小型命令行工具。
subinacl /file "examplefileorfolder" /grant=mydomain\myusername=F
显然,您需要目标上的本地管理员访问权限(从提升的命令提示符运行)。
您也可以以递归方式执行此操作,例如:
subinacl /subdirectories "C:\examplefolder\*" /grant=mydomain\myusername=F
但是递归会在每个级别的每个子文件夹中创建一个显式 ACE(非继承),如果您的目录结构相当大,这会非常混乱。还请注意,您需要星号,出于某种原因,没有星号,递归就无法工作。
我只建议将它作为最后的手段,并首先在测试区域使用一些非必要数据进行练习,因为它是一个旧的实用程序,如果使用递归(子目录)可能会有点不稳定,如上所述。