Windows环境下将文件夹权限复制/克隆至另一文件夹
复制文件夹权限(仅权限,不复制内容)的问题及解决方案
我曾需要把一个文件夹的用户及组权限复制到另一个文件夹,要求只复制权限,不复制任何文件夹内容。
常见的PowerShell解决方案是:
Get-Acl -Path $source_path | Set-Acl -Path $destination_path
但这个方法存在明显局限性:有时Set-Acl无法完整复制所有组权限,也无法正确设置目标文件夹的所有者。
我的解决方法
可以借助icacls命令结合PowerShell来实现完整的权限与所有者复制:
- 导出源文件夹的权限到临时文件(加
/T表示递归处理子文件夹,不需要可去掉):icacls "C:\source_folder" /save "C:\temp\perms.txt" /T - 将导出的权限应用到目标文件夹:
icacls "C:\destination_folder" /restore "C:\temp\perms.txt" - 复制源文件夹的所有者到目标文件夹(需要管理员权限):
$sourceAcl = Get-Acl -Path "C:\source_folder" $destinationAcl = Get-Acl -Path "C:\destination_folder" $destinationAcl.SetOwner($sourceAcl.Owner) Set-Acl -Path "C:\destination_folder" -AclObject $destinationAcl
内容的提问来源于stack exchange,提问作者Ankan Das
相关产品推荐
相关产品推荐

