好的,所以我无法弄清楚如何使用 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