powershell - 使用 powershell 更改权限不会传播给 child

标签 powershell directory-permissions

当我使用 powershell 和 set-acl 设置新的文件系统访问规则时,我将继承标志设置为传播到子对象和叶对象

$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule(
    "username","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")))
Set-Acl -path $filename -aclObject $acl

当我查看资源管理器中的权限时.. 在安全选项卡中.. 高级.. 传播设置正确。但如果我看看 children 自己,他们不会显示新的安全规则。

如果在资源管理器中,我添加了另一个具有不同 SID 的规则......并保存它(不强制选择“替换所有子对象权限......”)。然后手册和 powershell 规则都出现在 child 身上。就好像需要某种启动来使 children 接受新的传播规则。我缺少什么才能使子对象显示添加的新规则?

最佳答案

我有同样的逻辑问题...

$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule(
"username","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")))

用最后一个“无”,你是在说:不要传播......
改成:
$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule(
"username","FullControl", "ContainerInherit, ObjectInherit", "InheritOnly", "Allow")))

它会传播您的设置。
在此处查看访问规则选项:http://msdn.microsoft.com/en-us/library/ms147785.aspx

这些是传播标志:http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.propagationflags.aspx

关于powershell - 使用 powershell 更改权限不会传播给 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970957/

相关文章:

windows - 如何使用 PowerShell 安装 CMake? (自动安装)

SVN - 用户目录权限

powershell - 如何显示所有域用户及其组成员身份(Active Directory)

.net - 在 Powershell 中使用 .NET 属性

c# - .NET Core - 目录权限 Linux

permissions - 使用 boost::filesystem/std::filesystem 检查有效权限

c# - 如何使用 C# 在远程 Windows 计算机上创建共享文件夹?

powershell - Powershell流水线数据到外部控制台应用程序

powershell - 获取 AzureRmResourceGroup : The term 'Get-AzureRmResourceGroup' is not recognized as the name of a cmdlet