2014-09-11 314 views
17

我想在应用文件夹权限时使用“默认”选项;因此,我的意思是在“属性”中为文件夹使用“完全控制,写入,读取等”。PowerShell设置文件夹权限

下面的脚本作品添加的用户,但它适用“特殊权限” - 不只是那些勾选框为那些在文件夹的属性菜单中看到:

$Acl = Get-Acl "\\R9N2WRN\Share" 

$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule ("user","FullControl","Allow") 

$Acl.SetAccessRule($Ar) 
Set-Acl "\\R9N2WRN\Share" $Acl 

什么时我做错了吗?

回答

32

FileSystemAccessRule()构造函数中指定继承可修复此问题,如下面修改的代码所示(请注意在"FullControl""Allow"之间插入两个新的构造函数参数)。

$Acl = Get-Acl "\\R9N2WRN\Share" 

$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("user", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow") 

$Acl.SetAccessRule($Ar) 
Set-Acl "\\R9N2WRN\Share" $Acl 

根据this topic

“当你创建一个FileSystemAccessRule你的 InheritanceFlags属性设置为无的方式。在GUI中,这个 相当于ACE与应用到框设置为“仅此文件夹”, ,并且该类型的条目必须通过高级 设置进行查看。“

我测试了修改,它的工作原理,但当然信贷是由于MVP发布该主题的答案。

0

使用PowerShell的设置权限(文件/目录)又如:

请验证是否权限

获取-ACL “C:\ file.txt的” | FL *

申请完全权限为大家

$ ACL =获取-ACL “C:\ file.txt的”

的$ args = “人人”, “FullControl”,“允许“

$ accessRule =新物体System.Security.AccessControl.FileSystemAccessRule的$ args

$ acl.SetAccessRule($ accessRule)

$ acl | Set-Acl“C:\ file.txt”

希望这会有所帮助