SOLVED

looking for powershell script to "create a team"

Copper Contributor

So the history is we had 260 subsites in SharePoint on premises 2010 that we migrated to 260 SPO site collections created sans groups. Next we associated each site collection to a new group using powershell script like so:

$sitelist = Import-Csv C:\Users\sp_farmadmin\Documents\modurllist.csv
$Cred = Get-Credential
Connect-SPOService -Url "https://obfuscatedtenantname-admin.sharepoint.com "-Credential $Cred
foreach ($SiteURL in $sitelist)
{
Set-SPOSiteOffice365Group -Site $SiteURL.SiteURL -DisplayName $GroupDisplayName.GroupDisplayName -Alias $GroupDisplayName.GroupDisplayName
}

…. so now if you connect to any of the site url's you'll see a Microsoft Teams Create a Team prompt in lower left corner...

The question, is there a powershell switch to click that button that I can run in a foreach loop?

 

Also when I associate the SPO site to new MS Teams using gui, the SharePoint owners and members groups are auto added to the group. I'll need a way to automate this in powershell as well.

 

Thanks for any help!

Regards,

/Robin

2 Replies
best response confirmed by RobinOrgHood (Copper Contributor)
Solution

@RobinOrgHood 

 

There is no switch to enable Teams while enabling group to the site. But you can use Teams Powershell command (New-Team) to create team from existing Office 365 group.

 

Run the below commands to install and connect Teams powershell module :

Install-Module MicrosoftTeams -Force
Connect-MicrosoftTeams

 The below command gets GroupId from the Site object and creates team for the group.

$SiteObj = Get-SPOSite -Identity $SiteURL.SiteURL
New-Team -GroupId $SiteObj.GroupId.Guid

To copy SharePoint group members to Office 365 group. First you can get SPO group members using the Get-SPOSiteGroup cmdlet and add them to Teams group using the Add-TeamUser cmdlet.

 

I have modified your script :

$sitelist = Import-Csv C:\Users\sp_farmadmin\Documents\modurllist.csv
$Cred = Get-Credential
Connect-SPOService -Url "https://obfuscatedtenantname-admin.sharepoint.com "-Credential $Cred
foreach ($SiteURL in $sitelist)
{
Set-SPOSiteOffice365Group -Site $SiteURL.SiteURL -DisplayName $GroupDisplayName.GroupDisplayName -Alias $GroupDisplayName.GroupDisplayName
#Enable Team
$SiteObj = Get-SPOSite -Identity $SiteURL.SiteURL
New-Team -GroupId $SiteObj.GroupId.Guid

#Copy SharePoint Group Members to Team Members
$memberObj = (Get-SPOSiteGroup -Site $SiteURL.SiteURL | Where-Object {$_.Title -like '*Members*'} | Select-Object Users)
foreach ($UserId in $memberObj.Users)
{
#Filter only users, avoid groups and system object
#if($UserId -like "*yourdomain.com")
{
Add-TeamUser -GroupId $SiteObj.GroupId.Guid -User $UserId
}
}

#Copy SharePoint Group Owners to Team Owners
$ownerObj = (Get-SPOSiteGroup -Site $SiteURL.SiteURL | Where-Object {$_.Title -like '*Owner*'} | Select-Object Users)
foreach ($UserId in $ownerObj.Users)
{
#Filter only users, avoid groups and system object
#if($UserId -like "*yourdomain.com")
{
Add-TeamUser -GroupId $SiteObj.GroupId.Guid -User $UserId -Role Owner
}
}

}

 

@Kevin_Morgan, many thanks for the suggestions, I am very grateful for the help!

 

/Robin

1 best response

Accepted Solutions
best response confirmed by RobinOrgHood (Copper Contributor)
Solution

@RobinOrgHood 

 

There is no switch to enable Teams while enabling group to the site. But you can use Teams Powershell command (New-Team) to create team from existing Office 365 group.

 

Run the below commands to install and connect Teams powershell module :

Install-Module MicrosoftTeams -Force
Connect-MicrosoftTeams

 The below command gets GroupId from the Site object and creates team for the group.

$SiteObj = Get-SPOSite -Identity $SiteURL.SiteURL
New-Team -GroupId $SiteObj.GroupId.Guid

To copy SharePoint group members to Office 365 group. First you can get SPO group members using the Get-SPOSiteGroup cmdlet and add them to Teams group using the Add-TeamUser cmdlet.

 

I have modified your script :

$sitelist = Import-Csv C:\Users\sp_farmadmin\Documents\modurllist.csv
$Cred = Get-Credential
Connect-SPOService -Url "https://obfuscatedtenantname-admin.sharepoint.com "-Credential $Cred
foreach ($SiteURL in $sitelist)
{
Set-SPOSiteOffice365Group -Site $SiteURL.SiteURL -DisplayName $GroupDisplayName.GroupDisplayName -Alias $GroupDisplayName.GroupDisplayName
#Enable Team
$SiteObj = Get-SPOSite -Identity $SiteURL.SiteURL
New-Team -GroupId $SiteObj.GroupId.Guid

#Copy SharePoint Group Members to Team Members
$memberObj = (Get-SPOSiteGroup -Site $SiteURL.SiteURL | Where-Object {$_.Title -like '*Members*'} | Select-Object Users)
foreach ($UserId in $memberObj.Users)
{
#Filter only users, avoid groups and system object
#if($UserId -like "*yourdomain.com")
{
Add-TeamUser -GroupId $SiteObj.GroupId.Guid -User $UserId
}
}

#Copy SharePoint Group Owners to Team Owners
$ownerObj = (Get-SPOSiteGroup -Site $SiteURL.SiteURL | Where-Object {$_.Title -like '*Owner*'} | Select-Object Users)
foreach ($UserId in $ownerObj.Users)
{
#Filter only users, avoid groups and system object
#if($UserId -like "*yourdomain.com")
{
Add-TeamUser -GroupId $SiteObj.GroupId.Guid -User $UserId -Role Owner
}
}

}

 

View solution in original post