我想从源文件夹= C:\script\banana
复制Ntfs权限
到目的地= 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文件夹答案 0 :(得分:0)
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
}