我正在尝试创建一个PS脚本,以自动从我们的禁用用户OU中的所有帐户中删除几乎所有的组成员身份。我在这里找到了一个不错的脚本,该脚本已于几年前被贡献者修改,以删除所有具有1个例外的组。
我现在正试图找到一种添加多个异常的方法。
我们使用AD组来许可我们的o365邮箱,我们需要在分离后的90天内保持这些组的成员身份不变。
我当前拥有的脚本是这样:
$ou = Get-ADUser -SearchBase "OU=Disabled,DC=domain,DC=local" -Filter *
foreach ($user in $ou) {
$UserDN = $user.DistinguishedName
Get-ADGroup -LDAPFilter "(member=$UserDN)" | foreach-object {
if ($_.name -ne "Domain Users") {remove-adgroupmember -identity $_.name -member $UserDN -Confirm:$False} }
}
我将如何修改此部分以允许更多已过滤的组?
if ($_.name -ne "Domain Users") {remove-adgroupmember -identity $_.name -member $UserDN -Confirm:$False}
预先感谢您的帮助! 克里斯
答案 0 :(得分:4)
如果要与列表而不是字符串进行比较,可以使用-notin
运算符。例如:
$GroupsToKeep = 'Domain Users','O365 Licensing','Hates Pie'
$ou = Get-ADUser -SearchBase "OU=Disabled,DC=domain,DC=local" -Filter *
foreach ($user in $ou) {
$UserDN = $user.DistinguishedName
Get-ADGroup -LDAPFilter "(member=$UserDN)" | foreach-object {
if ($_.name -notin $GroupsToKeep) {
remove-adgroupmember -identity $_.name -member $UserDN -Confirm:$False
}
}
}
这会将OU中的每个用户从“域用户”,“ O365许可”和“讨厌的馅饼”之外的任何组中删除(讨厌的馅饼对我来说似乎是不自然的,必须跟踪他们,它们可能是吸血鬼)。