我很难检查用户X是否是某些Office 365组的成员。我尝试了以下代码:
$members = (Get-MsolGroupMember -GroupObjectId $group.ObjectId -All).ForEach('ObjectId')
if($Office365User.ObjectId -in $members) {
# ... user already a member of group Y
}
但由于未知原因,返回Get-MsolGroupMember
并非所有成员。我在1-2小时前添加了两个用户,这些用户不包含在结果集中。
我的下一个方法使用了cmdlet Get-DistributionGroupMember
,但集合中的对象没有支持属性ObjectId
。
我目前正在使用此代码来测试用户X是否是Y组的成员:
function Test-UserisAlreadyGroupMember() {
param(
[PARAMETER(Mandatory)]
[Microsoft.Online.Administration.Group]
$Group,
[PARAMETER(Mandatory)]
[Microsoft.Online.Administration.User]
$Office365User
)
$isMember = $false;
if($Group.GroupType -eq [GroupType]::DistributionList) {
$members = (Get-DistributionGroupMember -Identity $Group.EmailAddress).ForEach('PrimarySmtpAddress')
$isMember = ($Office365User.UserPrincipalName -in $members)
}
else {
$members = (Get-MsolGroupMember -GroupObjectId $group.ObjectId -All).ForEach('ObjectId')
$isMember = ($Office365User.ObjectId -in $members)
}
$isMember
}
这导致以下问题:
Get-MsolGroupMember
并非该组的所有成员?PrimarySmtpAddress
与UserPrincipalName
进行比较(我是否必须考虑UserPrincipalName
与PrimarySmtpAddress
不相同的情况)