You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:PowerShell脚本无法实现替换子对象可继承权限项功能

解决方法

原代码的核心问题是Set-Acl的*-Recurse*参数无法递归将修改后的ACL应用到子对象,它仅对路径中包含通配符的场景生效。要实现勾选「替换所有子对象权限项为来自此对象的可继承权限项」的效果,推荐以下两种可靠方案:

方案一:PowerShell递归遍历处理

$folderPath = "H:\"

# 配置根目录权限:启用继承并清除自身显式权限
$rootAcl = Get-Acl -Path $folderPath
$rootAcl.SetAccessRuleProtection($false, $true)
Set-Acl -Path $folderPath -AclObject $rootAcl -Force

# 递归遍历所有子目录和文件,统一应用继承设置
Get-ChildItem -Path $folderPath -Recurse -Force | ForEach-Object {
    $itemAcl = Get-Acl -Path $_.FullName
    $itemAcl.SetAccessRuleProtection($false, $true)
    Set-Acl -Path $_.FullName -AclObject $itemAcl -Force
}

Write-Host "已完成所有子对象的可继承权限替换操作"

方案二:使用icacls命令(高效批量处理)

icacls是系统原生的权限管理工具,直接支持递归替换继承权限,命令更简洁高效:

icacls "H:\" /inheritance:e /T /C
  • */inheritance:e*:启用继承并清除对象的显式权限(对应勾选的目标选项)
  • */T*:递归处理所有子目录和文件
  • */C*:遇到错误时继续执行,不中断整个任务

方案对比

  • 方案一适合需要额外自定义权限逻辑的场景,灵活性高
  • 方案二执行速度更快,适合处理包含大量文件/目录的路径

内容的提问来源于stack exchange,提问作者snehasish nandy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:13:29