有没有办法在 powershell 中从头开始创建 ACL,而不是复制现有的 ACL 并修改它们?

有没有办法在 powershell 中从头开始创建 ACL,而不是复制现有的 ACL 并修改它们?

我知道我可以使用 get-acl 复制现有 ACL,然后使用 set-acl 修改它们,但是有没有办法可以创建一个新的空白 ACL,然后添加我需要的内容?例如:

$foo = new-acl
#push some access rules into $foo
set-acl C:\myFolder $foo

答案1

您需要使用.NET 对象:

$emptyACL = New-Object System.Security.AccessControl.DirectorySecurity

注意,我是通过使用 Get-Member 函数查找 TypeName 才找到这一点的:

$ACL = Get-ACL C:\some_directory
$ACL | Get-Member
   TypeName: System.Security.AccessControl.DirectorySecurity
  Name                            MemberType     Definition
  ----                            ----------     ----------
  .........................................................

相关内容