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

jjc*_*jcm 5 windows powershell access-control-list

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

$foo = new-acl
#push some access rules into $foo
set-acl C:\myFolder $foo
Run Code Online (Sandbox Code Playgroud)

小智 7

您需要使用 .NET 对象:

$emptyACL = New-Object System.Security.AccessControl.DirectorySecurity
Run Code Online (Sandbox Code Playgroud)

请注意,我通过使用 Get-Member 函数查找 TypeName 发现了这一点:

$ACL = Get-ACL C:\some_directory
$ACL | Get-Member
   TypeName: System.Security.AccessControl.DirectorySecurity
  Name                            MemberType     Definition
  ----                            ----------     ----------
  .........................................................
Run Code Online (Sandbox Code Playgroud)