Powershell ACL设置ACL条目以允许或拒绝类型

时间:2013-09-17 18:29:04

标签: powershell permissions acl

好的,所以我在弄清楚如何使用PowerShell更改文件夹的ACL时遇到了麻烦。我有NAS文件夹,我希望我的脚本将类型设置从“允许”更改为“拒绝”而不更改规则或主体,但仅限于特定组。原因是该文件夹属于个人,当个人AD帐户过期​​时,我希望有权访问它的两个组不再具有访问权限。一旦重新激活个人的AD帐户,脚本将“翻转”类型从“拒绝”返回到“允许”。我已经弄清楚如何提取信息,但很难设置它:

$i = 0
$acl = get-acl c:\scripts
for($i = 0; $i -lt $acl.Access.Count; $i++){
    Write-Host $acl.Access.IdentityReference.GetValue($i)
    Write-Host $acl.Access.AccessControlType.GetValue($i)
    Write-Host $acl.Access.FileSystemRights.GetValue($i)
}

这会将每个安全主体,类型(允许或拒绝)以及权限吐出为“完全控制”,“读取”,“修改”等,或者在数字上吐出特殊权利。我试过使用.SetValue但没有成功。任何人都可以帮助我设置AccessControlType(允许或拒绝)的值的语法?提前谢谢。

编辑:尝试了类似下面的内容而没有运气(在列表中设置第一个):

$acl.Access.AccessControlType.SetValue(0)=1
Set-Acl -Path c:\scripts -AclObject $acl

1 个答案:

答案 0 :(得分:0)

您可以使用AddAccessRule创建的acl对象的RemoveAccessRuleget-acl方法。

看看我对Powershell Disable Parts Of Open File Dialog Box的回答 - 那里有一个代码示例。