所以这可能有点复杂......我创建了一个脚本,它生成了对共享具有安全权限的所有人的列表。问题是共享的共享权限将与安全权限不同。我想删除所有共享权限,并将共享权限设置为具有与安全权限相同的完全控制权限的同一人。
我需要在四个不同的服务器上运行它,所以我需要一个可以改变它的脚本。任何想法或资源?
编辑:在与同事讨论后,目标略有改变。现在我想使用Set-Acl
基本上删除所有用户的完全控制,除了一个特定的组。这不是太难了吗?我只想为每个用户抛出一个 - 对于每个用户 - 如果用户不在特定组中,则设置acl以删除完全控制。
如何删除权限?我看到了设置FC的命令,但没有用于删除。
答案 0 :(得分:0)
根据您的回复,这种方式可以删除GET-ACL和SET-ACL中的所有错误,因此可以在早期版本的PowerShell中使用。删除后,您可以更改此项(引用$ PERM)以添加回要保留访问权限的组。如果您需要调整,请告诉我。
$folderpath = "Somefolderpath"
write-Output "Removing inheritance "
$acl = Get-Acl $Folderpath
$acl.SetAccessRuleProtection($True, $True)
$acl | Set-Acl
$acl = Get-Acl $Folderpath
$acl.Access |where {$_.IdentityReference -eq "NT AUTHORITY\Authenticated
Users"} |%{$acl.RemoveAccessRule($_)}
$acl | Set-Acl
If ($?){
Write-Output "Inheritance Removed"
}
write-Output "Set permissions"
$acl = Get-Acl $Folderpath
$perm = "AddGroupHere","FullControl","Allow"
$accessRule = new-object System.Security.AccessControl.FileSystemAccessRule
$perm
$acl.AddAccessRule($accessRule)
$acl | Set-Acl
If ($?){
Write-Output "ACL set"
}