如何使用PowerShell从文件夹和所有子文件夹中删除所有访问规则?

亚当大帝

我知道针对特定文件夹已回答了这个问题,但是我也想从所有子文件夹中删除一个用户。

我尝试设置继承和传播值以确保该设置被继承,但是无论我如何设置参数,它都仅适用于根目录。(部分)我的代码如下所示:

$inherit = "ContainerInherit, ObjectInherit"
$propagation = "None"
$Acl=get-acl $o2
$Accessrule = New-Object system.security.AccessControl.FileSystemAccessRule($o1,"Read", $inherit, $propagation,"Allow")
$Acl.RemoveAccessRuleAll($Accessrule)
Set-Acl -Path $o2 -AclObject $Acl
米奇·巴拉德利(Micky Balladelli)

请注意以下内容,它将删除ACL

使用前测试

我强烈建议您在使用以下驱动器之前,在单独的驱动器上使用完整的ACL进行ROBOCOPY。如果不正确,则始终可以复制文件或ACL或同时复制两者。

好的,您可以从这里开始。就像Ansgar所说的那样,您几乎遍历了文件夹列表,并为每个文件夹检索了每个ACL中的所有访问控制项(ACE)。

如果没有继承ACE,则将其删除。

更新为使用$ o1在此版本中,需要将ACE分配给由定义的用户$o1

我还没有测试它,所以在释放地狱之前进行一些测试并逐步检查这些值。

$filepath = "<your drive letter>:"

$folders = @((get-item $filePath))
$folders += Get-ChildItem $filePath -Recurse | where { $_.PSIsContainer -ne $false }

Foreach ($folder in $folders)
{

    $acl = Get-Acl -Path $folder.FullName

    Foreach($access in $acl.access) 
    { 
        if ($access.isinherited -eq $false -and $access.IdentityReference.Value -eq $o1)
        { 
            $acl.RemoveAccessRule($access) 
        }  
    } 
    Set-Acl -path $folder.fullname -aclObject $acl 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Powershell:将所有文件从文件夹和子文件夹移至单个文件夹

使用PHP从文件夹中删除所有文件?

如何使用.gitignore忽略文件夹中的所有子文件夹

如何使用python删除文件夹中的所有文件夹?

将文件复制到文件夹和所有子文件夹中

.htaccess规则文件与所有子文件夹匹配(子文件夹是随机创建的)

使用PowerShell脚本从所有30天以上的子文件夹中删除文件

遍历文件夹和子文件夹中的所有文件并获取创建日期

如何最好地删除文件夹及其子文件夹中的所有文件

使用R将文件夹中的所有PDF和所有子文件夹复制到新文件夹

如何在ckfinder中显示所有文件夹,子文件夹和文件

删除文件夹及其子文件夹中的所有文件

如何访问主文件夹中的所有文件?

读取文件夹和子文件夹中的所有文件-进度和大小

如何删除文件夹XXX中的所有文件

批。批量重命名文件夹和所有子文件夹中的文件

删除所有旧文件,文件夹和子文件夹的命令

如何检查所有文件夹和子文件夹是否都不为空?

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

如何从目录和子文件夹中删除所有名为“ Sample”的文件夹?

递归清除其中没有文件的文件夹中的所有文件夹和子文件夹

如何从文件夹中删除所有文件?

删除子文件夹中的所有内容

删除所有子文件夹中的`target`文件夹

将“ .backup”附加到Powershell 2.0中的所有文件,文件夹和子文件夹

Gitignore用于文件夹和子文件夹中的所有文件

如何忽略提名文件夹中的_vti_cnf和_vti_pvt文件夹以及提名文件夹的所有子文件夹?

使用 bash 列出所有文件夹和子文件夹

如何删除文件名中包含特定字符串的文件夹和所有子文件夹中的文件?