【发布时间】:2020-06-16 04:53:01
【问题描述】:
在 AD 中删除用户后,他们的名称将更改为 S-X-XX-XXX
我有一个脚本来提取 S-X-XX-XXX 具有权限的所有文件夹,我要做的是获取该文件夹列表并删除所有 S-X-XX-XXX。
代码
<# The S-* is to represent the User ID that I am wanting to remove their folder permissions #>
$TargetUser = "S-*"
$TargetPath = "C:\Depts"
$Paths = get-childitem -path $TargetPath -Recurse -Directory
$FolderList = $Paths.FullName
ForEach ($Folder in $FolderList) {
$ACL = Get-Acl -Path $Folder
$ACLlist = $ACL.Access | where {$_.IdentityReference -like "*mike*"}
$RemoveUser = $ACLlist.IdentityReference
if ($ACLlist.IdentityReference -like "$TargetUser") {
Write-Host $Folder
Write-Host $RemoveUser
$ACE = New-Object System.Security.Accesscontrol.FileSystemAccessRule($RemoveUser, "None", "ContainerInherit,ObjectInherit", "InheritOnly", "Deny")
$ACL.AddAccessRule($ACE)
Set-Acl -Path $Folder -AclObject $ACL
}
}
我找到了有关如何从另一个文件夹权限设置文件夹权限的代码,但是这是不是通过继承添加的用户。
我知道我缺少一些简单的东西,所以任何帮助都会很棒。
非常感谢所有回复的人,感谢你们抽出时间提供帮助。
【问题讨论】:
-
简单的解决方案:不要删除帐户。禁用帐户,进入特定的 OU 并在帐户名称中添加一个前缀,例如
X_。 -
代码没有做什么?脚本完成运行后,文件夹发生了什么变化?我只是想知道您在代码中到底缺少什么。
-
vonPryz - 帐户被禁用并从 Active Directory 中删除。这是我简化的房屋清洁任务,而不必遍历所有文件夹并手动完成。
-
Alex_P - 帐户没有被删除或根本没有更改。上面变量中的脚本为我提供了每个文件夹“C:\Depts\“Fold Name\Sub Folder Name”和域\SX-XX-XXX 帐户的完整路径。我可以看到分配给每个 SX- 的权限XX-XXX 以及我用来递归检查文件夹树中所有文件夹的另一个脚本。
标签: powershell directory permissions