Who*_*ich 7

老问题,但我最近需要为多个家庭共享执行此操作以限制“完全控制”。虽然您可以在 NTFS 级别执行此操作,但递归应用需要时间,需要时间来反转,并且 ADUC MMC 等工具可以恢复权限。

似乎没有用于管理现有共享权限的内置命令行工具,仅在初始设置期间,但您可以进行多次授权,因此如果共享暂时离线不是问题,您可以使用:

NET SHARE example /DELETE /Y
NET SHARE example=C:\FolderPath /GRANT:Everyone,Change /GRANT:Administrators,Full /UNLIMITED /CACHE:None
Run Code Online (Sandbox Code Playgroud)

但这对我来说不是一个选择,因此最终使用了出色的“SetACL.exe”工具,该工具还可以选择定位共享名称。

SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-1-0;p:change"
SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-5-32-544;p:full"
Run Code Online (Sandbox Code Playgroud)

请注意,这是针对所有人 ( S-1-1-0 ) 和本地管理员 ( S-1-5-32-544 ) 使用的“众所周知的 SID”。您可以使用该名称,但它可以避免查找以及将其与域组混淆的任何可能性。

为了提高效率,可以将多个更改合并为一个命令:

SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-1-0;p:change" -ace "n:S-1-5-32-544;p:full"
Run Code Online (Sandbox Code Playgroud)

请注意 SetACL 命令的目标是共享名称,而不是共享的文件夹路径,后者通常用于 NTFS 权限。


Fra*_*nov 5

你看过icacls.execacls.exe吗?(都在System32文件夹中,至少在Win7上)

  • 这些是 NTFS,而不是共享 AFAIK http://support.microsoft.com/kb/919240 (2认同)