每隔一段时间,我都会碰到一个我需要拥有的文件。 我通常使用cacls
来更改NTFS权限,但似乎没有所有权。 在* nix下,我会运行像chown me:me <file>
。 有没有窗口相当于chown
?
subinacl是Windows系统pipe理员用于处理所有权和ACL的所有function工具。 您可以将所有权更改为除您以外的任何人( 您不能通过GUI执行此操作 )。
subinacl /file test.txt /setowner=domain\foo
这使您可以将权限设置为您喜欢的任何用户,而无需成为pipe理员(因为我相信takeown.exe需要)。
您正在寻找“TAKEOWN.EXE”,它是Windows Server 2003中的第一个作为标准组件,我相信之前有一个资源工具包项目。 它在Windows 7以及更新的系统上可用。
takeown /f <some-file-or-folder> /r
/r
对指定文件夹的所有子节点recursion执行操作。 与subinacl
不同,您必须以您尝试拥有的用户身份login; 或者,您可以简单地将所有权分配给“pipe理员”组。
这是一个在SS64上保存的文档副本:
语法TAKEOWN [/ s Computer [/ u] [Domain] UserName [/ p [Password]]]] / f FileName [/ a] [/ r [/ d {Y | N}]]
键/计算机远程计算机的名称或IP地址(不要使用反斜杠)。 默认=本地计算机。 此参数适用于在命令中指定的所有文件和文件夹。
/ u [Domain] UserName使用指定用户帐户的权限运行脚本。 默认=系统权限。
/ p [密码]在/ u参数中指定的用户帐户的密码。
/ f FileName文件名称,UNCpath或目录名称模式。 接受通配符*
/ a授予pipe理员组而不是当前用户的所有权。
/ r对指定目录和子目录中的所有文件执行recursion操作。
/ d {Y | N}取消当前用户对指定目录没有“列表文件夹”权限时显示的确认提示,而是使用默认值:Y:取得该目录的所有权。 N:跳过目录。 请注意,您必须将此选项与/ r选项一起使用。 如果未指定/ a参数,则将文件所有权授予当前login到计算机的用户。
使用(?和*)的混合模式不被takeown命令支持。
在更改文件/文件夹的所有者之后,您可以将完全权限分配给这些文件,然后读取或删除它们。
取得所有权和文件夹的全部权利和一切内幕:
takeown /F somedir /A /R icacls somedir /grant:r User:F /T
我不得不以pipe理员身份启动一个命令提示符,但它在Windows 8.1中为我工作。 对于Windows 8.1的尴尬,我不得不search“命令”,右键单击命令提示符图标,以查看“以pipe理员身份运行”选项。 我有一个命令提示符固定到我的任务栏,但右键单击它不会显示“以pipe理员身份运行”选项。
Icacls [/ GRANT [:r]:[…]] [/ Denegar:[…]] [/删除[:g |:d]] […]] [/ t] [/ c] [/ l] [/ q] [/ setintegritylevel:[…]] Icacls [/] [/ l] [/ q]]
你可能想看看许可pipe理的瑞士军刀SetACL 。 以下是如何将驱动器C上的所有文件的所有权分配给“pipe理员”,并一次去除所有子对象的inheritance保护的示例 :
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"
你也可以添加-silent
。
我知道这是一个非常古老的post,但是Windows 7和更新版本的内置方法(可能在Windows Vista中,但我不确定)。 从要重置的文件夹中的升级命令提示符下运行以下命令。 /t
告诉icacls
recursion执行操作。
icacls .\* /setowner %UserDomain%\%UserName% /t icacls .\* /reset /t
第一个命令将所有者重置为通过环境variableslogin的人员。 当然,也可以使用特定的名称。
第二个命令然后强制将权限重新放置到树的所有子文件夹和文件。
希望这有助于未来的人。
在Windows Server 2003 R2(及更高版本)中,您可以利用内置工具icacls.exe来更改命令行的所有权,以及所有传统的cacls.exe操作。
请注意,icacls.exe默认为“编辑”模式,而cacls.exe默认为“replace”模式 – 一个可喜的变化,我们这些咬(不止一次)的cacls微小的细微差别!
对于Windows 2003,2008或Vista或7使用Takeown 。
对于Windows 2000使用Fileowners.pl 。
另一个select是fileacl它是很小的,可以设置/取消设置对象上的“inheritance/不inheritance”标志,不像大多数Windows实用程序。
我find了一个使用Windows工具的解决scheme: cacls
cacls <file or directory> /E /T /G <user>:F
takeown /f *.jpg
icacls *.jpg /grant "Everyone":F
(请注意,在非英文Windows中“Everyone”可能不存在,例如在德语Windows中,它只能与“Jeder” – Windows翻译命令选项真正的失望!)