使用 set-acl 添加的用户权限不会继承到文件和子文件夹

使用 set-acl 添加的用户权限不会继承到文件和子文件夹

我编写了两个 PowerShell 脚本。一个脚本要求用户提供文件夹名称。它会创建一个同名文件夹,授予用户完全控制权,授予管理员组完全控制权并剥夺继承的权限,只保留用户和管理员。第二个脚本要求提供用户名并授予该用户在新文件夹中的修改权限。

除了一件事之外,它按预期工作:当我在新创建的文件夹中创建文件或文件夹时,它不会继承这些权限。我查看了“安全”选项卡,单击了“高级”并编辑(在帐户上),发现有两件事不符合我的预期:

  • “应用到”设置为“仅此文件夹”。当我手动将其设置为“此文件夹、子文件夹和文件”时,它按预期工作
  • 使用第二个脚本创建的用户具有上述功能,并且权限框“删除子文件夹和文件”未勾选。

添加帐户主要围绕以下几行:

$Acl = Get-Acl $Folderpath
$Ar = New-Object system.Security.AccessControl.FileSystemAccessRule($user_account,"FullControl","Allow")
$Acl.Setaccessrule($Ar)
Set-Acl $Folderpath $Acl

$Folderpath是先前设置的指向文件夹的变量。$user_account是先前设置的包含用户帐户名称的变量。

我的问题:

有没有办法将这些帐户正确添加到文件夹权限(权限将被继承,用户具有删除权限)或随后在脚本中进行更正?

答案1

需要更多的继承标志;您用来通过仅传递三个参数来创建 ACE 的构造函数未指定 ACE 应如何继承。

尝试这个:

$Ar = New-Object system.Security.AccessControl.FileSystemAccessRule($user_account, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")

相关内容