1

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

1 回答 1

0

您可以使用创建的 acl 对象的AddAccessRuleRemoveAccessRule方法get-acl

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

于 2013-09-17T22:00:24.953 回答