好的,所以我在弄清楚如何使用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
答案 0 :(得分:0)
您可以使用AddAccessRule
创建的acl对象的RemoveAccessRule
和get-acl
方法。
看看我对Powershell Disable Parts Of Open File Dialog Box的回答 - 那里有一个代码示例。