使用PowerShell区分通讯组列表和Office 365组

时间:2019-05-10 18:42:27

标签: azure powershell

我想知道是否有一种方法可以区分O365中的Office 365安全组和常规通讯组列表。

我有一个PowerShell入门脚本,该脚本使用一个现有用户帐户来复制访问权限,并将其所有分发+ Office 365组放入一个数组中。更具体地说,它将组/列表的ObjectID / GUID放入数组。

问题是,我似乎找不到一种将我的新用户添加到阵列中所有组的好方法。我正在使用cmdlet Add-DistributionGroupMember将用户添加到通讯组列表,并将Add-AzureADGroupMember添加到Office 365安全组。假设现有用户是4个通讯组列表和3个O365安全组的成员。我当前的代码是:

$groups = Get-AzureADUserMembership -ObjectId $existingUser | Select-Object -ExpandProperty ObjectID

foreach($group in $groups) {
    Add-DistributionGroupMember -Identity $group -Member $newUser
    Add-AzureADGroupMember -ObjectID $group -RefObjectID $newUser
}

此代码可以正常工作,就像新用户可以一样,它可以归入所有7个组。很好。

但是它还会抛出7条错误消息:

3次,当Add-DistributionGroupMember尝试将用户添加到O365组时,我会得到"The current operation is not supported on GroupMailbox."

4次我会得到Add-AzureADGroupMember : Error occurred while executing AddGroupMember Code: Request_BadRequest Message: Unable to update the specified properties for objects that have originated within an external service.

我认为解决此问题的最简单方法是获取所有O365安全组GUID的列表并将它们放入数组中。然后使用if语句检查当前$ group是否出现在该数组中以使用适当的命令。

但是我找不到通过PowerShell获取此属性的方法。是否有任何Azure AD命令可以让我知道组是否为常规通讯组列表?

0 个答案:

没有答案