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 部分中,我需要它来更改刚刚找到的组/用户的完全访问权限,并将其更改为修改。
解决方案
推荐阅读
- r - 长向量字符的特定字符串操作
- node.js - 使用 youtube-sr 处理播放列表出错
- nearprotocol - NEAR 协议开发工具的糟糕体验
- ios - NumberFormatter Fraction Digits 混淆(swift)
- python - 更新字典中的一个值会更新每个值
- spring-boot - spring boot bootBuildImage在tomcat图像上应用war
- clojure - 递归定义数据结构中节点之间依赖关系的 Clojure 规范
- html - 创建一个 .bat 文件以打开网站上的程序/链接?
- c# - Unity 中的 NullReferenceException
- excel - 使用 Visual Basic 从 Excel 导入