代码之家  ›  专栏  ›  技术社区  ›  Iain

Powershell文件夹继承问题

  •  0
  • Iain  · 技术社区  · 14 年前

    • NT授权\认证用户
    • 内置\用户

    如果我手动将文件夹更改为不从它继承父脚本工作,我已经通过google查找通过脚本编译但不执行任何操作来删除继承的最佳方法。

    $WebsiteACL =Get-Acl -Path "C:\websites"
    $WebsiteACL.SetAccessRuleProtection($true,$false)
    

    有人有什么建议吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Keith Hill    14 年前

    就我个人而言,Get Acl和Set Acl仍然是一个很难使用的PITA(我是一个C#dev)。你可以用icacls.exe要轻松完成任务:

    icacls C:\temp\foo /inheritance:d
    

    它还支持删除组。查看其用法: icacls /?

        2
  •  1
  •   Greg Wojan    14 年前

    Get-Acl/Set-Acl 除非您是要更改其权限的对象的所有者(即使您是管理员),否则这可能是一个巨大的麻烦。如果要更改不属于自己的对象的ACL,则必须具有 SeBackupPrivilege公司 为您的身份/帐户启用。我所知道的修改系统权限的唯一简单方法是安装 PowerShell社区扩展 使用 Get/Set-Privilege . 我真的不明白为什么会有这种限制,但它确实存在。

    尽管如此,使用 icacls 在大多数情况下工作得很好。如果对通过启用了基于访问权限的枚举的共享访问的目录设置权限,则会出现错误。每个人都这么做对吗?;)

    经过一番绞尽脑汁之后,人们断定icacls在对这座城市做些什么 使同步 钻头。没有 使同步

    SetACL.exe 你可以从SourceForge下载。它有一个非常复杂的语法,imho,但是非常强大。它还可以作为OCX使用,因此您可以通过PowerShell编写脚本。