我想知道是否有一种方法可以区分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命令可以让我知道组是否为常规通讯组列表?