多个网元筛选器powershell

多个网元筛选器powershell,powershell,Powershell,我正在尝试创建一个PS脚本,以自动从禁用用户OU中的所有帐户中删除几乎所有的组成员身份。我在这里找到了一个很好的脚本,几年前一个贡献者修改了它,删除了所有组,只有一个例外 我现在正试图找到一种方法来添加多个异常 我们使用广告组来授权o365邮箱,我们需要在分离后90天内保持这些组成员身份不变 我目前的脚本是: $ou = Get-ADUser -SearchBase "OU=Disabled,DC=domain,DC=local" -Filter * foreach ($user in $ou)

我正在尝试创建一个PS脚本,以自动从禁用用户OU中的所有帐户中删除几乎所有的组成员身份。我在这里找到了一个很好的脚本,几年前一个贡献者修改了它,删除了所有组,只有一个例外

我现在正试图找到一种方法来添加多个异常

我们使用广告组来授权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}
提前感谢您的帮助!
Chris

如果要与列表而不是字符串进行比较,可以使用
-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授权”和“讨厌馅饼”(讨厌馅饼对我来说似乎不自然,必须跟踪他们,他们可能是吸血鬼)。

如果要与列表进行比较,而不是字符串,可以使用
-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授权”和“讨厌馅饼”(讨厌馅饼对我来说似乎不自然,必须跟踪他们,他们可能是吸血鬼)。

太棒了。我试试看。非常感谢。令人惊叹的我试试看。非常感谢。