从共享文件夹中删除“完全访问”权限,但有例外

时间:2018-10-09 08:48:44

标签: powershell

基本上,在我的新工作中,我们有一个共享的网络区域,其中每个部门都有单独的文件夹。每个文件夹都有多个子文件夹。问题在于,先前的经理在每个文件夹和子文件夹上为包括“每个人”组在内的每个人分配了“完全访问”安全权限。我想更改“完全访问”安全权限以进行修改,但不想更改某些安全组(例如域管理员和某些其他安全组)。

我在PowerShell中有一些代码,可以为我提供哪些组具有完全访问权限的列表,但是我需要能够获取该列表并对其进行更改以进行修改。

这就是我无耻地偷走了别人的东西。

$path = "\\srv-shared\sharedfolders"
$ExcludeUsers = 'Domain\Domain Admins',
                'NT AUTHORITY\SYSTEM',
                'BUILTIN\Administrator',
                'domain\Administrator'

# Create regex-pattern to match all excluded users
$ExcludeUsersRegex = ($ExcludeUsers | % { [regex]::Escape($_) }) -join '|'

Get-Childitem $path -Recurse -Directory | ForEach-Object {
    $file = $_

    Get-Acl -Path $file.FullName |
        Select-Object -ExpandProperty Access |
        Where-Object {
            $_.IdentityReference -notmatch $ExcludeUsersRegex -and
            $_.AccessControlType -eq "Allow" -and
            $_.FileSystemRights -eq "FullControl"
        } | ForEach-Object {
            #Foreach ACL
            New-Object psobject -Property @{
                Path = $file.FullName
                ACL  = $_.IdentityReference
            }
        }
} | Select-Object -Property Path, ACL | Export-Csv e:\check_acl.csv -NoTypeInformation

基本上,在#Foreach ACL部分中,我需要它更改刚刚找到的组/用户的完全访问权限,并将其更改为修改。

0 个答案:

没有答案