通过 powershell 删除多个域的用户

通过 powershell 删除多个域的用户

我一直尝试通过 powershell 清理 NAS 上的权限,但遇到了一个恼人的问题。

目前我用的是

  foreach ($entry in $entries) {
        $acl = (Get-Item $QueryPath).GetAccessControl('Access')
        foreach($acc in $acl.access )
            {
            $val = $acc.IdentityReference.Value
            Write-Host "$val"
            if($val -match $entry)
            {  
                Write-Host "  ==  Removing $val ==  " -ForegroundColor Yellow
                $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($val,"FullControl","Allow")
                $acl.RemoveAccessRule($acc)  
                $acl.RemoveAccessRuleAll($acc) # might be redundant but just incase...       
            }
        }
        Set-Acl -Path $QueryPath -AclObject $acl
    }

其中 $entry 是想要删除的用户/组的列表,而 $querypath 源自 Get-ChildItem。

存在一个孤立的用户名和/或组群,我无法通过此方法删除,虽然花了一些时间,但我找到了模式。旧域组/权限。

域 1\用户 1 ... 域 2\用户 2

从 Windows 资源管理器查看权限时,会列出两个用户。但执行上述操作时,脚本会注意到有两个条目,但只返回 domain2\user2 两次。

同样测试(获取 Acl -Path $PATH).Access均等地返回两个相同的条目。因此,我无法删除所有条目。

任何建议如何返回所有信息

相关内容