Microsoft Teams remove Wiki tab with Microsoft Graph
Hallo zusammen,
Ich habe mich damit befasst, wie man das Wiki Tab aus einem Teams Channel entfernt.
Das geht nur über die Microsoft Graph API für Microsoft Teams.
Dafür muss man zuerst eine Applikation in Azure Active Directory registrieren.
Nun müssen die Berechtigungen für die Applikation vergeben werden
Microsoft Graph auswählen
Dann Application Permission auswählen
Und die benötigten Berechtigungen auswählen
Anschliessend die Berechtigungen als Administator zustimmen (Grant Admin Consent).
Nun braucht es noch ein ClientSecret
Dazu muss man einen Namen für das Secret vergeben und die Dauer der Gültigkeit angeben.
Im Team "IcewolfDemo" gibt es im "Channel3" ein Wiki Tab.
Nun das ganze per PowerShell.
###############################################################################
# Get AccessToken
###############################################################################
#Variables
$ClientID = "546f064a-baa2-4eb9-8b68-70c79b91942b"
$ClientSecret = "YourClientSecret"
$tenantID = "icewolfch.onmicrosoft.com"
$scope = "https://graph.microsoft.com/.default"
$authority = "https://login.microsoftonline.com/$tenantID/oauth2/v2.0/token"
$Body = @{
"grant_type" = "client_credentials";
"client_id" = "$ClientID";
"client_secret" = "$ClientSecret";
"scope" = "$scope";
}
#Get AccessToken
$result = Invoke-RestMethod -Method POST -uri $authority -Body $body
$AccessToken = $result.access_token
$AccessToken
Mit dem AccessToken kann man nun die Rest Abfragen durchführen.
#Get O365 Groups
$uri = 'https://graph.microsoft.com/v1.0/groups'
$query = Invoke-RestMethod -Method GET -Uri $uri -ContentType "application/json" -Headers @{Authorization = "Bearer $AccessToken"}
$query.Value | where {$_.groupTypes -eq "Unified"} | ft id, DisplayName, mail, GroupTypes
#IcewolfDemo
$TeamID = "bc8b2580-47ac-46c9-92cb-01db782d1eec"
Nun frage ich die Channels ab
#Get Channels
$uri2 = 'https://graph.microsoft.com/v1.0/teams/'+$TeamID+'/channels'
$query2 = Invoke-RestMethod -Method GET -Uri $uri2 -ContentType "application/json" -Headers @{Authorization = "Bearer $AccessToken"}
$query2.value
Nun die Tabs des Channel3
#Get Tabs
#Channel3
$ChannelID = "19:ab14bfad5c5c446e94871f524c3fd00a@thread.tacv2"
$uri3 = 'https://graph.microsoft.com/v1.0/teams/'+$TeamID+'/channels/'+$ChannelID+'/tabs'
$query3 = Invoke-RestMethod -Method GET -Uri $uri3 -ContentType "application/json" -Headers @{Authorization = "Bearer $AccessToken"}
$query3.value | fl
$wikitabID = ($query3.value | where {$_.displayName -eq "Wiki"}).id
Mit der ID des WikiTabs kann man nur den Tab löschen
#Delete Wiki Tab
$uri4 = 'https://graph.microsoft.com/v1.0/teams/'+$TeamID+'/channels/'+$ChannelID+'/tabs/'+$wikitabID
$query4 = Invoke-RestMethod -Method DELETE -Uri $uri4 -ContentType "application/json" -Headers @{Authorization = "Bearer $AccessToken"}
Juhuu, das Wiki Tab ist weg