PowerShell Active Directory - сравните Get-ADPrincipalGroupMembership с массивом имен групп - PullRequest
0 голосов
/ 26 апреля 2020

Я написал скрипт, который наша команда инициаторов использует для управления завершенными пользователями и членством в группах. Сценарий работает хорошо, но это занимает много времени из-за того, как я решил перечислить членство в группах для начала. Текущий скрипт использует Get-ADGroup $group -pr Members | select -ExpandProperty Members для перечисления членства.

Я полагаю, что должен быть более эффективный способ сделать это, поэтому я написал это:

  $grpMemberships = Get-ADPrincipalGroupMembership $user | select name
  foreach ($Group in $Groups){
         if ($grpMemberships -contains $group) {
         Write-Host "$grpMembership found!"
         Remove-ADGroupMember $grpMembership -members $user
         Write-Host "Removing $user from $grpMembership"
         "$user is a member of $group" | out-file -filepath Termed_Users-$get-date -f yyy-MM-dd.txt -Append
         Write-Host ""
         }
         }

Проблема в том, что это никогда не кажется выполненным. Есть идеи, почему это не работает?

1 Ответ

0 голосов
/ 27 апреля 2020

Спасибо @ Олаф Я понял это с вашей помощью.

foreach ($grpMembership in $grpMemberships.name) {
    foreach ($Group in $Groups){
        if ($Groups -contains $grpMembership) {
            Write-Host "$grpMembership found!"
            #Remove-ADGroupMember $grpMembership -members $user
            Write-Host "Removing $user from $grpMembership"
            "$user is a member of $group" | out-file -filepath Termed_Users-$(get-date -f yyy-MM-dd).txt -Append
            Write-Host ""
        }
    }
}
...