Как передать вывод Where-Object в Azure AD Group - PullRequest
0 голосов
/ 18 сентября 2019

После того, как участник группы зарегистрировался в MFA, мне нужно удалить участника из одной группы Azure AD и добавить его в другую группу.

Когда я запускаю скрипт, я не получаю ошибок, но он не удаляет / не добавляет участников, как ожидалось.Я могу проверить, что это проходит через Шаг 2, но ничего не делает после этого.Я считаю, что мне нужно Select-Object в начале шага 3.

Скрипт удалит участников из группы A и переместит их в группу B, если участник зарегистрирован в MFA.

  1. Get-AzureADGroupMember -ObjectId "7d23abf4-4e30-4092-b4e6-a5297addad75" |

  2. Where-Object {$_.StrongAuthenticationMethods -ne $null} |

  3. Add-AzureADGroupMember -ObjectId "24db4ad9-8fe0-45f6-a71a-79b76395105a" |

  4. Remove-AzureADGroupMember -ObjectId "7d23abf4-4e30-4092-b4e6-a5297addad75"

    Step 1. Get member of Group A
    Step 2. Where member has enrolled in MFA 
    Step 3. Add member to Group B
    Step 4. Remove member from Group A 
    

Скрипт должен проверять одну группу объявлений Azure (A), чтобы увидеть, какие участники зарегистрированы в MFA, удалить тех, кто был зарегистрирован в группеи переместите их в другую группу (B).

1 Ответ

0 голосов
/ 19 сентября 2019

У вашего скрипта есть две проблемы.

1. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

* *1007* 2.Субъект User в AzureAD powershell не имеет свойства StrongAuthenticationMethods, он существует в MSOnline powershell, поэтому вам нужно использовать его вместо этого.

Вот пример для вас, убедитесь, что вы установили модуль MSOnline powershell с Install-Module MSOnline.

Примечание : вам необходимо убедиться, что пользователиеще не в группе B, в противном случае вы получите ошибку The group member you are trying to add is already a member of this group.

Connect-MsolService

$groupA = "<objectid of group A>"
$groupB = "<objectid of group B>"

#get the users(whose GroupMemberType is 0) in the group A
$userids = (Get-MsolGroupMember -GroupObjectId $groupA | Where-Object {$_.GroupMemberType -eq '0'}).ObjectId
#add the MFA-enrolled user to A and remove from B
foreach($item in $userids){
    $user = Get-MsolUser -ObjectId $item
    if($user.StrongAuthenticationMethods.Count -ne "0"){
        Add-MsolGroupMember -GroupObjectId $groupB -GroupMemberType User -GroupMemberObjectId $item
        Remove-MsolGroupMember -GroupObjectId $groupA -GroupMemberType User -GroupMemberObjectId $item

    }else{
        Write-Host The user $user.DisplayName is not MFA-enrolled.
    }
}
...