我有一个 PowerShell 脚本来设置用户的 NTFS、共享和 DFS 文件夹。所有这些都有效,但是我在设置 NTFS 权限时收到此消息。
使用“1”参数调用“SetAccessRule”的异常:“此访问控制列表不是规范形式,因此无法修改。” 在 C:\Users\Public\Documents\Scripts\Add-UserFolders.ps1:53 char:1
代码如下所示:
# NTFS Rights
$Acl = (Get-Item $UserFolder).GetAccessControl('Access')
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule($Username, 'Modify', 'ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)
Set-Acl -path $UserFolder -AclObject $Acl
$Acl = (Get-Item $ScanFolder).GetAccessControl('Access')
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule($Username, 'Modify', 'ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)
Set-Acl -path $ScanFolder -AclObject $Acl
我的问题是第一个代码块会引发错误,但即使格式相同,第二个代码块也不会。运行 icacls Path\to\folder -verify 未显示错误,并且未修改 ACL 以添加用户对象。