【问题标题】:Setting InheritanceFlags vs PropagationFlags in Powershell在 Powershell 中设置 InheritanceFlags 与 PropagationFlags
【发布时间】:2016-08-13 11:32:55
【问题描述】:

我正在尝试找到 InheritanceFlags 和 PropagationFlags 的正确组合,以便我的新文件夹不会继承之前的文件夹权限,但会将权限传播到新文件夹中包含的文件夹/文件...我尝试从下面的内容中交换这两个,但这只赋予新文件夹与上面的相同的权限,并且没有应用我的新组...

如何正确设置标志以仅将权限应用于此文件夹下的所有文件/文件夹而不从父文件夹中提取?

我找到了this table,但它似乎没有达到我想要的效果......

function New-Ace {
  [CmdletBinding()]
  Param(
    [Parameter(Mandatory=$true, Position=0)]
    [Security.Principal.NTAccount]$Account,
    [Parameter(Mandatory=$false, Position=1)]
    [Security.AccessControl.FileSystemRights]$Permissions = 'ReadAndExecute',
    [Parameter(Mandatory=$false, Position=2)]
    [Security.AccessControl.InheritanceFlags]$InheritanceFlags = 'ContainerInherit,ObjectInherit',
    [Parameter(Mandatory=$false, Position=3)]
    [Security.AccessControl.PropagationFlags]$PropagationFlags = 'None',
    [Parameter(Mandatory=$false, Position=4)]
    [Security.AccessControl.AccessControlType]$Type = 'Allow'
  )

  New-Object Security.AccessControl.FileSystemAccessRule(
    $Account, $Permissions, $InheritanceFlags, $PropagationFlags, $Type
  )
}

$domain = 'TestDomain'

$administrators = ([wmi]"Win32_Sid.Sid='S-1-5-32-544'").AccountName

$acl = Get-Acl $path

$administrators, "$domain\Domain Admins" | ForEach-Object {
  $acl.AddAccessRule((New-Ace $_ 'FullControl'))
}
$acl.AddAccessRule((New-Ace $ADNameRW 'Modify'))
$acl.AddAccessRule((New-Ace $ADNameRO 'ReadAndExecute'))

Set-Acl $path $acl

【问题讨论】:

  • 你能再解释一下吗?您发送给我的链接是一个 .net 编码页面,它位于 PowerShell 中。我对 PowerShell 很陌生,所以该页面并没有真正的帮助。

标签: powershell inheritance propagation


【解决方案1】:

调用$acl.SetAccessRuleProtection($true, $false) 应防止该目录或文件从其父目录继承权限,第二个参数指定应删除先前继承的权限。启用保护 = 禁用继承。

在您的New-Ace 函数中,InheritanceFlags 指定权限可以应用于哪种类型的子对象(文件、目录或两者),PropagationFlags 控制权限是否应用于此对象和/或仅立即孩子们。这些属性都不会影响此文件或目录从其父级继承的方式。

顺便说一句,PowerShell 是基于 .NET 构建的,因此您可以使用相同的类、方法等,并且在某些情况下,这是完成 cmdlet 未涵盖的事情的唯一方法。

【讨论】:

  • 我一直在努力理解继承和传播如何应用于我创建的文件夹。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 2017-05-18
  • 1970-01-01
  • 2012-06-09
  • 2011-09-24
相关资源
最近更新 更多