Во-первых, я не сценарист, поэтому прошу прощения, если это звучит как вопрос новичка.
Я пытаюсь написать запрос Powershell, чтобы перечислить все учетные записи пользователей в определенном поддереве OU, которые не принадлежат хотя бы к одной из 4 групп.
Насколько я могу судить, вы не можете запросить это непосредственно в объекте AD User, поэтому вам нужно перебирать группы, чтобы получить членство, но я не понимаю, как это сделать в нескольких группах.
Я собрал сценарий, который может найти всех пользователей, добавить их во временную группу, а затем удалить их, если они принадлежат к одной из четырех других групп, но это выглядит ужасно, поэтому я надеюсь, что кто-то лучшее решение.
Вот что у меня сейчас есть (не смейтесь) :-(
Import-Module ActiveDirectory
$groupname = "TempGroup"
$excludegroup1 = "Group1"
$excludegroup2 = "Group2"
$excludegroup2 = "Group4"
$excludegroup2 = "Group4"
$users = Get-ADUser -Filter * -SearchBase "ou=xxx,dc=xxx,dc=xxx" -SearchScope Subtree
foreach($user in $users)
{
Add-ADGroupMember -Identity $groupname -Member $user.samaccountname -ErrorAction SilentlyContinue
}
$members = Get-ADGroupMember -Identity $groupname
$excludemembers = Get-ADGroupMember -Identity $excludegroup1
foreach($member in $excludemembers)
{
Remove-ADGroupMember -Identity $groupname -Member $member.samaccountname
}
$members = Get-ADGroupMember -Identity $groupname
$excludemembers = Get-ADGroupMember -Identity $excludegroup2
foreach($member in $excludemembers)
{
Remove-ADGroupMember -Identity $groupname -Member $member.samaccountname
}
$members = Get-ADGroupMember -Identity $groupname
$excludemembers = Get-ADGroupMember -Identity $excludegroup3
foreach($member in $excludemembers)
{
Remove-ADGroupMember -Identity $groupname -Member $member.samaccountname
}
$members = Get-ADGroupMember -Identity $groupname
$excludemembers = Get-ADGroupMember -Identity $excludegroup4
foreach($member in $excludemembers)
{
Remove-ADGroupMember -Identity $groupname -Member $member.samaccountname
}
Вся помощь с благодарностью принимается.