【问题标题】:Copying ntfs permissions to specific folders with a common name将 ntfs 权限复制到具有通用名称的特定文件夹
【发布时间】:2026-01-21 04:40:01
【问题描述】:

我想从源文件夹复制 Ntfs 权限 = C:\script\banana 到目的地 = C:\script\architecture

知道目标目录是:

C:\script\architecture\A\G & C:\script\architecture\A\G1
C:\script\architecture\B\G & C:\script\architecture\B\G1
C:\script\architecture\C\G & C:\script\architecture\A\G1

所以我希望仅将权限复制到 G1 文件夹

到目前为止我所拥有的是:

Get-Acl -Path C:\Script\Banana | Set-Acl C:\script\Architecture -Filter G1

但这只是将权限复制到架构下的所有内容

你们能否指导我如何仅使用此命令定位 G1 文件夹

【问题讨论】:

    标签: powershell ntfs


    【解决方案1】:

    Set-ACL 不是递归的。为了能够做到这一点,您可以保存 C:\Script\Banana 的 ACL 的结果,然后使用 Get-ChildItem 搜索您想要的文件夹。只要您拥有 PowerShell 3.0,这应该可以工作

    $savedACL = get-acl "C:\script\banana"
    Get-ChildItem "C:\script\architecture" -Directory -Recurse -Filter "G1" | ForEach-Object{
        $_ | Set-Acl -AclObject $savedACL -WhatIf
    }
    

    当您确定-WhatIf 是针对正确的文件夹时,删除它。如果您只有 2.0,那么一些小的更改应该可以完成同样的事情。

    $savedACL = get-acl "C:\script\banana"
    Get-ChildItem "C:\script\architecture" -Recurse -Filter "put" | Where-Object{$_.PSIsContainer} | ForEach-Object{
        $_ | Set-Acl -AclObject $savedACL -WhatIf
    }
    

    【讨论】:

    • 马特!太感谢了!效果很好,你太棒了
    最近更新 更多