我是 powershell 脚本编写的新手(自从我开始学习 powershell 将近 1 个月。)
我目前正在使用 powershell 2.0 编写脚本来清理文件夹 NTFS ACL。我想删除除管理员之外的所有 acl。
我的问题是我无法找到一种方法来删除每一个非管理员的 acl,而不了解他们。
所以才来这里求powershell pro。
最佳答案
此代码删除 acl:
$acl = Get-Acl \\remote_server\share_folder\HAL.9000
$acl.Access | %{$acl.RemoveAccessRule($_)}
此代码添加管理员 acl:
#BUILTIN administrator
$acl = Get-Acl \\remote_server\share_folder\HAL.9000
$permission = "BUILTIN\Administrators","FullControl", "ContainerInherit,ObjectInherit","None","Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($accessRule)
Set-Acl \\remote_server\share_folder\HAL.9000 $acl
#Domain controller administrator
$acl = Get-Acl \\remote_server\share_folder\HAL.9000
$permission = "DOMAINCONTROLLER\Administrators","FullControl", "ContainerInherit,ObjectInherit","None","Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($accessRule)
Set-Acl \\remote_server\share_folder\HAL.9000 $acl
希望这会对某人有所帮助:)
关于windows - 使用 powershell 删除文件夹上的所有 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6573308/