powershell权限

时间:2016-01-20 19:35:51

标签: powershell acl

我目前正在使用它来获取特定文件夹的所有权限列表。

`$InputFile = "C:\temp\Folders.txt"
$OutputFile = "C:\temp\FolderPermissions.txt"
$FolderList = Get-Content $InputFile

ForEach ($Folder in $FolderList)
{
    Get-Acl $folder | Format-list >>$OutputFile
    } 

` 

我希望它能够从每个指定的文件夹中删除管理员以外的所有访问权限。

我已经看过使用SetAccessControl,但只能设法让它删除所有。

有人可以指出我正确的方向。

由于

1 个答案:

答案 0 :(得分:1)

以下代码将删除所有匹配' administrator'的用户execpt用户 如果您想添加更多帐户,请将其添加到Where-Object过滤器,例如:

Where-Object {$_.IdentityReference -match 'Administrator' -or $_.IdentityReference -eq 'NT AUTHORITY\SYSTEM'}

$InputFile = "C:\temp\Folders.txt"
$OutputFile = "C:\temp\FolderPermissions.txt"
$FolderList = Get-Content $InputFile

ForEach ($Folder in $FolderList)
{
Get-Acl $folder | Format-list >>$OutputFile

### Remove all ACL Rules exepet 'Administrator(s)'

$ACL = Get-ACL -Path $Folder
$Rules = $ACL.Access | Where-Object {$_.IdentityReference -notmatch 'Administrator'}

    Foreach ($Rule in $Rules)
    {
    [Void]$ACL.RemoveAccessRule($Rule)
    }
    Set-Acl -Path $folder -AclObject $acl

}     
相关问题