根據您的回覆,這種方式可以刪除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"
}
將共享權限設置爲'Everyone:FullControl'並使用文件系統權限執行訪問控制。無論如何它們允許更細粒度的控制。如果有的話,在共享上啓用基於訪問的枚舉,以便人們只能看到他們實際有權訪問的文件/文件夾。 –
在較新版本的PowerShell中仍然存在get-acl和set-acl的一些主要錯誤,但這是可能的。我會盡力在今晚晚些時候回覆! –
嗨@RichardDakin在與我的同事們討論後,目標略有改變。現在我想使用set-acl從基本上刪除所有用戶的完全控制,除了一個特定的組。這不應該太難了嗎?我只是簡單地爲每個用戶分配一個 - 對於每個用戶 - 如果用戶不在特定組中,則設置acl以刪除完全控制....如何刪除權限?我看到設置FC的命令,但不能刪除。 – SanomaJean