Dienstag, 21. April 2020

[Microsoft Teams] Eine SharePoint Classic Seite (ohne eine Office 365 Group) zu einem Teams konvertieren



Wenn man im Unternehmen mehrere Classic SharePoint Seiten hat, welche noch nicht an eine Office 365 Group gebunden sind und diese zu einem Microsoft Teams konvertiert werden sollen, kann man dies komplett manuell erledigen oder mein folgendes Script verwenden. Dieses Script erstellt für die SharePoint Seite eine Office 365 Group, welche dann für die Microsoft Teams Erstellung verwendet wird. Bitte die rot markierten Texte an die eigene Umgebung anpassen. Den Rest sollte man so lassen.


Damit das Script funktioniert, müssen die erforderlichen Powershell Erweiterungen (für Teams / Exchange / Azure / SharePoint) installiert sein.


###############################################################################
# Script zum Verbinden einer Office365 Group an eine SharePoint Classic Site:
# Bitte folgende Variablen definieren
###############################################################################
$ClassicSPOSite = "URL_der_SharePoint_Seite
$GroupDisplayName="Der_Name_wie_das_Teams_heißen_soll
$GroupAlias="Der_Name_wie_das_Teams_heißen_soll"
$TeamOwner="BesitzerSMTPAdresse@yourcompany.com"
$TeamMail="MeineTeamsSMTPAdresse@yourcompany.com"
$TeamVisability="Private"

###############################################################################
###############################################################################
#
# Bitte das nachfolgende Script NICHT anpassen!!!!
# Nur sicherstellen, dass der richtige Tenant angegeben ist!!!
#
###############################################################################
###############################################################################

# Connect to SharePoint Online
Connect-SPOService -Url https://[your_tenant_name]-admin.sharepoint.com

#Connect Exchange-Online
Import-Module $((Get-ChildItem -Path $($env:LOCALAPPDATA+"\Apps\2.0") `
-Filter Microsoft.Exchange.Management.ExoPowershellModule.dll -Recurse ).FullName`
|?{$_ -notmatch "_none_"} | select -First 1)
$EXOSession = New-ExoPSSession
Import-PSSession $EXOSession -AllowClobber

#Connect AzureAD
Connect-AzureAD

#Connect Teams
Connect-MicrosoftTeams -Credential $cred

# Create Offic 365 Group for Classic Site
Set-SPOSiteOffice365Group -Site $ClassicSPOSite -DisplayName $GroupDisplayName -Alias $GroupAlias -IsPublic $false

# Kurze Pause / Cloud Zeit geben
Start-Sleep -s 90

# Ermitteln der Office 365 GroupID
$GroupID = Get-AzureADGroup -SearchString $GroupDisplayName |select ObjectId |ft -hide |Out-String | ForEach-Object { $_.Trim() }

# Erstellen des Microsoft Teams mithilfe der Office 365 GroupID
New-Team -Group $GroupID

# Kurze Pause / Cloud Zeit geben
Start-Sleep -s 30

# Besitzer zum Teams hinzufügen
Add-TeamUser -GroupId $GroupID -User "$TeamOwner" -Role "owner"

# Kurze Pause / Cloud Zeit geben
Start-Sleep -s 15

# Anpassung der Teams Einstellungen
$TeamName=$GroupDisplayName
Set-Team -GroupId $GroupID -Visibility $TeamVisability
Set-UnifiedGroup -Identity "$TeamName" -PrimarySmtpAddress "$TeamMail"
Set-UnifiedGroup -Identity "$TeamName" -HiddenFromAddressListsEnabled $false
Set-UnifiedGroup -Identity "$TeamName" -HiddenFromExchangeClientsEnabled:$false
Set-UnifiedGroup -Identity "$TeamName" -Language de-de
Set-UnifiedGroup -Identity "$TeamName" -AutoSubscribeNewMembers:$true
Set-UnifiedGroup -Identity "$TeamName" -RequireSenderAuthenticationEnabled $false
Add-UnifiedGroupLinks -Identity "$TeamName" -LinkType Member -Links "$TeamOwner"
Add-UnifiedGroupLinks -Identity "$TeamName" -LinkType Owner -Links "$TeamOwner"
Set-UnifiedGroup -Identity "$TeamName" -AutoSubscribeNewMembers:$true

1 Kommentar:

  1. Hallo Dominik,

    ich habe heute deine powershell Blogbeiträge entdeckt #cool Herzlichen Dank fürs Teilen. ps Anfängern wird so geholfen.

    Aktuell will ich ein ähnliches Problem lösen. Ich habe meine Schüler:innen in einem AD. MIt einem ps script kann ich O365 Gruppen erzeugen, weiß aber nicht, wie ich die Klassen gleich in MS Teams aufnehmen kann.

    Hier ist mein script:

    # kk
    # Script soll aus den schooladmin Gruppen O365-Gruppen in unserem Tenant erstellen
    # soll auf dem Server gestartet werden

    Install-WindowsFeature RSAT-AD-PowerShell

    #Test, ob es klappt
    # unsere Domain heisst "als"
    Get-ADDomain | select Name | Format-List
    Get-ADGroup -Filter * -SearchBase "ou=Klassen,ou=gruppen,ou=Schule,DC=als,dc=local"

    ## Tipp
    # in der Datei stehen die Zugangsdaten von KK
    #Pfad muss eingestellt werden
    #$UserCredential = Import-Clixml -Path c:\kk-script\cred.cred
    #hat mit cred-cred nicht funktioniert, normale Anmeldung über $userid

    $userid = "XXXXXXXXXXX@xxxxxxxxxx.onmicrosoft.com"

    $UserCredential = get-credential $userid

    # Check if all required modules are installed:
    # Einfügung KK
    #Get-InstalledModule -Name Az,AzureAD,ExchangeOnlineManagement,MicrosoftTeams |
    #Select-Object -Property Version,Name,Repository,InstalledLocation

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
    Import-PSSession $Session

    $groups = get-ADGroup -Filter * -SearchBase "ou=Klassen,ou=gruppen,ou=Schule,DC=als,dc=local" -Properties Name

    # Anzeige der Gruppen auf dem Bildschirm
    #$groups

    #Test KK
    #Write-Output $groups


    foreach($group in $groups){
    $groupname = "o365-"+$group.name
    $groupname
    New-UnifiedGroup -DisplayName $groupname -Alias $groupname
    $Member = Get-ADGroupMember $group | Select sAMAccountName
    $Member | ForEach { Add-UnifiedGroupLinks -Identity $groupname -LinkType members -links $_.sAMAccountName
    Add-UnifiedGroupLinks -Identity $groupname -LinkType members -Links Mitglied
    Add-UnifiedGroupLinks -Identity $groupname -LinkType owner -links Besitzer }
    }

    Remove-PSSession $Session


    Wie könnte ich das Script optimieren? Aktuell läuft es nur, wenn ich auf dem Server bin.

    Kann ich es irgendwie auch "offline" starten?
    Wie kann ich die Klassen mit den Schülern direkt in ein MS Team überführen -template "EDU_clas"

    Schöne Grüße aus dem Schwarzwald

    Heinz

    AntwortenLöschen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.