Azure active directory 通过Azure Active Directory PowerShell for Graph模块添加到Microsoft 365组的来宾无法查看团队站点

Azure active directory 通过Azure Active Directory PowerShell for Graph模块添加到Microsoft 365组的来宾无法查看团队站点,azure-active-directory,microsoft-graph-api,microsoft-teams,Azure Active Directory,Microsoft Graph Api,Microsoft Teams,快速解释: 我们希望将新来宾添加到尽可能精简的Microsoft团队中。通过Powershell将来宾添加到M365组似乎可行,并且来宾会出现在团队成员中,但发送给来宾的URL不会将其加入团队频道。他们会得到一个空的团队仪表板(没有频道)或“您需要访问此团队或频道的权限”,具体取决于URL。从团队中删除来宾,然后通过团队管理门户重新添加他们,效果很好 重新创建的步骤: 有一个团队已经建立并开始工作,例如“MSTeamTest” 在c:\temp中创建一个名为investments.CSV的CSV

快速解释:
我们希望将新来宾添加到尽可能精简的Microsoft团队中。通过Powershell将来宾添加到M365组似乎可行,并且来宾会出现在团队成员中,但发送给来宾的URL不会将其加入团队频道。他们会得到一个空的团队仪表板(没有频道)或“您需要访问此团队或频道的权限”,具体取决于URL。从团队中删除来宾,然后通过团队管理门户重新添加他们,效果很好

重新创建的步骤:

  • 有一个团队已经建立并开始工作,例如“MSTeamTest”
  • 在c:\temp中创建一个名为investments.CSV的CSV,包含以下行(例如):
  • 在PowerShell(gist)中运行以下命令:
  • 此时,假设这是一个全新的访客,您拥有权限、许可证等,您现在在AzureAD拥有该访客,并且该访客出现在团队中:
    https://admin.teams.microsoft.com/teams/manage/{Teamid}

    但是,如果此人试图使用
    https://teams.microsoft.com/?tenantid={putIDHere}
    他们得到一个空的团队仪表板(没有列出任何团队)

    如果您从“更多”>“获取团队链接”向他们发送团队链接,他们会尝试以下方式:
    https://teams.microsoft.com/l/team/19%{teamID}%40thread.tacv2/conversations?groupId={groupId}&tenantId={tenantId}
    他们得到:

    “您需要访问此团队或频道的权限。请尝试与团队所有者或管理员联系。”

    如果他们遵循这样的链接,也会发生同样的行为:
    https://myapps.microsoft.com/?tenantid={tenantID}
    -他们看到自己是“MSTeamTest”组的成员,没有应用程序。单击组可以让他们启动团队,但他们会得到相同的“您需要权限”对话框

    再一次-通过管理面板,这个人看起来是会员的一部分。对于现有成员,他们会将其视为团队中的客人。我几乎错过了一个powershell命令

    我为什么要这么做? 如果最终目标只是让一位客人在团队中启动和运行,那么这个过程就太混乱了。两封电子邮件之间有人工干预,会让客人感到困惑(一封用于AAD,一封用于团队)

    AzureAD B2B允许您创建一个来宾,同时使他们成为组的成员,但对于在UI中使用CSV新来宾用户的批量导入,它不允许您向组(即有问题的团队)添加成员身份,因此我转向PowerShell

    我知道有人说传播东西需要一段时间: 然而,这似乎不是问题所在


    如果您有任何想法或解决方案,我将不胜感激!谢谢

    仅供参考,请注意,当您通过powershell或团队向o365组添加用户时,可能需要24小时才能与团队后端同步并完全配置用户。它们实际上是两个独立的数据集,o365成员身份需要与microsoft后端上的团队数据同步。因此,您可能会在24小时内看到不一致的情况。这不是一个实时操作

    所有新冠病毒在家工作的情况使问题变得更糟,因为团队看到了如此大量的用户。
    但如果您注意到不一致,这通常就是原因,特别是如果您通过powershell添加用户,或者通过graph api添加更多用户

    仅供参考,请注意,当您通过powershell或团队向o365组添加用户时,可能需要24小时才能与团队后端同步并完全配置用户。它们实际上是两个独立的数据集,o365成员身份需要与microsoft后端上的团队数据同步。因此,您可能会在24小时内看到不一致的情况。这不是一个实时操作

    所有新冠病毒在家工作的情况使问题变得更糟,因为团队看到了如此大量的用户。
    但如果您注意到不一致,这通常就是原因,特别是如果您通过powershell添加用户,或者通过graph api添加更多用户

    似乎有效的操作顺序是:

  • 使用以下命令将用户添加到AzureAD:
    New AzureADMSInvitation
  • 等待(例如)30秒:
    开始睡眠-30秒
  • 使用以下命令将用户添加到Microsoft 365组:
    Add TeamUser
  • 注:


    步骤#3是
    安装模块-Name MicrosoftTeams
    的一部分。团队的电子邮件似乎在初次邀请后10-15分钟发送。Microsoft团队电子邮件有一个SharePoint链接,如果您进入其中的文档,最终将看到打开团队频道的链接。到目前为止,这似乎是可行的,尽管有提到的延迟。

    似乎可行的操作顺序是:

  • 使用以下命令将用户添加到AzureAD:
    New AzureADMSInvitation
  • 等待(例如)30秒:
    开始睡眠-30秒
  • 使用以下命令将用户添加到Microsoft 365组:
    Add TeamUser
  • 注:


    步骤#3是
    安装模块-Name MicrosoftTeams
    的一部分。团队的电子邮件似乎在初次邀请后10-15分钟发送。Microsoft团队电子邮件有一个SharePoint链接,如果您进入其中的文档,最终将看到打开团队频道的链接。到目前为止,这似乎是可行的,尽管有提到的延迟。

    我刚刚注意到,虽然添加的来宾出现在:{groupID}中,但它们不出现在>管理团队中。我猜我应该使用这个团队模块,或者与现有代码结合使用:-将继续挖掘。。从该模块对groupID运行“Get TeamUser”后,用户似乎已被授予权限。。。很奇怪。就像它唤醒了一切。也许都是马车。我将尝试删除
        Name,InvitedUserEmailAddress,TeamName  
        Test Person, testperson@gmail.com, MSTeamTest
    
    # Install AzureADPreview
    Install-Module AzureADPreview
    
    # Hit UI login for AAD global admin:
    Connect-AzureAD
    
    # import CSV
    $invitations = import-csv c:\temp\invitations.csv
    
    # Add guest users to AzureAD
    $messageInfo = New-Object Microsoft.Open.MSGraph.Model.InvitedUserMessageInfo
    $messageInfo.customizedMessageBody = "Hey there! Check this out. I created an invitation through PowerShell"
    foreach ($email in $invitations) {New-AzureADMSInvitation -InvitedUserEmailAddress $email.InvitedUserEmailAddress -InvitedUserDisplayName $email.Name -InviteRedirectUrl https://teams.microsoft.com/?tenantid={putIDHere} -InvitedUserMessageInfo $messageInfo -SendInvitationMessage $true}
    
    # Add same guest users to Microsoft 365 Group (same csv)
    # wait a few seconds so the new guest user objects are available to add to the group
    Start-Sleep -Second 30
    foreach ($email in $invitations) {Add-AzureADGroupMember -RefObjectId (Get-AzureADUser | Where { $_.Mail -eq $email.InvitedUserEmailAddress }).ObjectID -ObjectId (Get-AzureADGroup | Where { $_.DisplayName -eq $email.TeamName }).ObjectID}