我希望使用PowerShell从文件夹权限中删除用户。 我已经find了很多关于如何删除用户权限的例子,但我实际上是想完全删除用户。
相当于在Windows资源pipe理器中执行以下操作:1.右键单击文件夹,然后select“属性”。 2.单击安全选项卡3.单击编辑4.突出显示用户或组。 5.单击删除
这是我试图在PowerShell中模仿的删除点击。
提前致谢。
正如Simon所build议的那样,下面的命令将实现你想要删除特定的用户或组的目的。
使用NTFSSecurity模块( https://gallery.technet.microsoft.com/scriptcenter/1abd77a5-9c0b-4a2b-acef-90dbb2b84e85 )
Remove-NTFSAccess -AccessRights FullControl -Account DOMAIN\Group -Path c:\temp -AccessType Deny -AppliesTo ThisFolderSubfoldersAndFiles Remove-NTFSAccess -AccessRights FullControl -Account DOMAIN\Group -Path c:\temp -AccessType Allow -AppliesTo ThisFolderSubfoldersAndFiles
我写了一个脚本来删除文件夹中的所有安全组,除了我明确排除的组。
$path = "C:\Path\To\Folder" $users = @{} $users = Get-NTFSAccess $path | Where-Object {$_.Account -ne "DOMAIN\Exclude"} | Select-Object Account foreach ($user in $users) { $removalAccount = $user.Account Write-Host "Removing account - $($removalAccount)" Remove-NTFSAccess -Path $path -Account $removalAccount -AccessRights FullControl -AccessType Allow Remove-NTFSAccess -Path $path -Account $removalAccount -AccessRights FullControl -AccessType Deny }
一般来说, Get-Acl和Set-Acl应该能够完成你所需要的。 但是,由于权限不足(除非您有权更改所有权),Get-Acl具有令人烦恼的限制,可能表明无法使用Set-Acl将修改后的ACL写回。 关于这个问题的更多信息可以在这个SO问题中find。
在任何情况下,对于文件系统权限,您都可以使用Get-Item返回的对象中的方法来解决Get-Acl的限制。
$acl = (Get-Item C:\myfolder).GetAccessControl('Access')
如果检查返回对象的$acl.Access属性,则会发现它是FileSystemAccessRule对象(又名ACE对象)的集合。 最终,您希望find与您尝试删除的用户相匹配的那些ACE的子集,并忽略所有inheritance的ACE。 你实际上不能删除inheritance的ACE,即使你尝试使用GUI删除它们,Windows资源pipe理器也会告诉你。 无论如何,下面是你如何获得ACE的子集。
$acesToRemove = $acl.Access | ?{ $_.IsInherited -eq $false -and $_.IdentityReference -eq 'MYCOMPUTER\myuser' }
现在您已经删除了ACE,您只需将它们从原始ACL中删除并将其写回文件夹即可。
$acl.RemoveAccessRuleAll($acesToRemove) Set-Acl -AclObject $acl C:\myfolder\
我设法使用zoredache推荐的NTFSSecurity模块来工作。
Remove-NTFSAccess -AccessRights FullControl -Account DOMAIN\Group -Path c:\temp -AccessType Deny -AppliesTo ThisFolderSubfoldersAndFiles Remove-NTFSAccess -AccessRights FullControl -Account DOMAIN\Group -Path c:\temp -AccessType Allow -AppliesTo ThisFolderSubfoldersAndFiles
以上两个命令已将所有安全性删除,并且用户/组已从权限列表中消失。 我可能会做更多的调查,看看这是否可以精简,但它确实是我所需要的。
谢谢你的帮助。