首页 > 解决方案 > 从共享文件夹中删除完全访问权限,但有例外

问题描述

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

我在 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 部分中,我需要它来更改刚刚找到的组/用户的完全访问权限,并将其更改为修改。

标签: powershell

解决方案


推荐阅读