好的,所以我很难弄清楚如何用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发布于 2013-09-17 22:00:24
您可以使用由AddAccessRule创建的acl对象的RemoveAccessRule和get-acl方法。
看看我对Powershell Disable Parts Of Open File Dialog Box的回答--这里有一个代码示例。
https://stackoverflow.com/questions/18857254
复制相似问题