小编Mic*_*l H的帖子

如何从大量文件夹中删除单个用户ACL?

我有一个非常大的文件夹列表,我需要从每个文件夹中删除一个ACL.而不是手动完成,我试图编写一个脚本来在很短的时间内完成它,但我遇到了一些麻烦.

这是我到目前为止:

$filepath = "C:\ALCTEST"
$user = "domain\username"

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

##Need to do this in order to remove item 0 from the array, otherwise
##item 0 is the parent folder
$newfolders = $folders[1,2 + 3..($folders.length - 1)]

foreach ($folder in $newfolders) {
    $acl = Get-Acl -Path $folder.FullName

    foreach ($access in $acl.access) {
        foreach ($value in $access.IdentityReference.Value) {
            if ($value -eq $user) {
                $acl.RemoveAccessRule($access) | Out-Null
            } …
Run Code Online (Sandbox Code Playgroud)

powershell acl powershell-2.0 powershell-3.0

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

acl ×1

powershell ×1

powershell-2.0 ×1

powershell-3.0 ×1