我正在运行Windows 8 企业版 x64。以下是 NTFS 卷上文件夹的当前安全设置:
我既无权访问文件夹内容,也无权访问其安全设置或当前所有者。因为我是管理员,所以我可以取得所有权并授予自己必要的权限,但这样一来,当前所有者的信息就会丢失。
有没有办法在不改变权限的情况下发现当前所有者,或者至少在我取得所有权之前知道谁是所有者?
答案1
Windows 安全模型非常深奥,您完全有可能发现自己没有必要的权限来找出哪个用户拥有某个对象,或者没有授予自己必要的权限来找出哪个用户拥有该对象。在这种情况下,您的选择就只有两种:a) 将命令包装runas ... dir /Q
在一个循环中,该循环遍历系统上所有已知的帐户名(并依次输入每个密码,假设您知道密码);或者 b) 咬紧牙关,取得所有权,并可能在此过程中删除对象上存在的任何 ACL。
答案2
我能够在 Windows 7 上运行以下命令。当然,YMMV。从提升的(管理员)命令提示符中,执行
icacls E:\Logs /grant nik:f
其中f
表示完全控制。这似乎添加了一个访问控制条目 (ACE),让您拥有完全控制权,而不会更改任何其他内容。执行此操作,然后再次查看属性;然后,如果您愿意,删除您的 ACE。如果您想特别小心地将 ACL 恢复到您篡改之前的状态,请尝试以下操作:
icacls E:\Logs /save Z-acl
icacls E:\Logs /grant nik:f
(去看看目录。)
icacls E:\ /restore Z-acl
注意最后一条命令的奇怪语法。 Z-acl
只是一个任意的文件名。注意:根据我的经验,它一定只是一个简单的文件名;我试过了
icacls \mys\ter\y_f\ile /save \Users\scott\Documents\acl
但它不起作用;显然是因为我为输出文件指定了路径。
顺便说一句,我在dir /Q
正常工作时遇到了问题。它经常错误地说所有者是 SYSTEM。Windows 资源管理器(文件属性)提供更多信息。