Teams Kanal mit PowerShell archivieren und wiederherstellen

Wie in meinem vorherigen Beitrag beschrieben aktiviert Microsoft in Teams die Möglichkeit einen Kanal zu archivieren. Offiziell beschreibt es noch keine Dokumentation, Teams unterstützt aber bereits die Archivierung und Wiederherstellung von einem Teams Kanal über Microsoft Graph.

Es ist auch nicht besonders aufwendig. Man nimmt die Graph API für Archivieren von einem Team und ändert es auf Teams Kanal. Für die Archivierung des Teams Kanals benötigst du in Graph folgende Berechtigungen.

  • Team.ReadBasic.All
  • ChannelSettings.ReadWrite.All

Mit Delegated Permissions muss das ausführende Konto Besitzer von dem Team oder Kanal sein, oder die Rolle Teams Administrator nutzen.


Teams Kanal archivieren

Ich hole mir über Microsoft Graph die Team ID (ID der Microsoft 365 Gruppe) und die ID des Teams Kanals. Mit den zwei Angaben wird der Kanal archiviert.

PowerShell
Import-Module Microsoft.Graph.Authentication
Connect-MgGraph -Scopes Team.ReadBasic.All, ChannelSettings.ReadWrite.All

$TeamName = "Tech Community"
$ChannelName = "Project Taurus"

# Define the URL to get the team ID from Microsoft Graph API and send a GET request to the URL to store the team ID
$Url = "https://graph.microsoft.com/beta/teams?`$filter=displayName eq '$TeamName'"
$TeamID = (Invoke-MgGraphRequest -Method Get -Uri $Url).value.id

# Define the URL to get the channel ID from Microsoft Graph API and send a GET request to the URL to store the channel ID
$Url = "https://graph.microsoft.com/beta/teams/$TeamID/channels?`$filter=displayName eq '$ChannelName'"
$ChannelID = (Invoke-MgGraphRequest -Method Get -Uri $Url).value.id

# Define the URL to archive the channel and send a POST request to the URL to archive the channel. Value of setSpoSiteReadOnlyForMembers is set to true to make the SharePoint site read-only for members.  
$Url = "https://graph.microsoft.com/beta/teams/$TeamID/channels/$ChannelID/archive?setSpoSiteReadOnlyForMembers=true"
Invoke-MgGraphRequest -Method POST -Uri $Url -ContentType "application/json"


Status von Teams Kanal auswerten

Ein Teams Kanal inkludiert das Property isArchived mit dem Wert true oder false. Eine einfache Abfrage gibt den Status zurück.

PowerShell
# Define the URL to get the ID, display name, and archive status of a specific channel from Microsoft Graph API and send a GET request to the URL
$Url = "https://graph.microsoft.com/beta/teams/$TeamID/channels/$ChannelID`?`$select=id,displayName,isArchived"
Invoke-MgGraphRequest -Method Get -Uri $Url

PowerShell

Teams Kanal wiederherstellen

So einfach wie die Archivierung funktioniert auch die Wiederherstellung. Mit einer Wiederherstellung löst es die Archivierung auf. Zwischen Archivierung und Wiederherstellung sollte zumindest eine Minute liegen, andernfalls gibt die API zurück das System sei noch mit einem Archivierungsvorgang beschäftigt.

PowerShell
# Define the URL to unarchive the channel and send a POST request to the URL to unarchive the channel
$Url = "https://graph.microsoft.com/beta/teams/$TeamID/channels/$ChannelID/unarchive"
Invoke-MgGraphRequest -Method POST -Uri $Url -ContentType "application/json"

# Define the URL to get the ID, display name, and archive status of a specific channel from Microsoft Graph API and send a GET request to the URL
$Url = "https://graph.microsoft.com/beta/teams/$TeamID/channels/$ChannelID`?`$select=id,displayName,isArchived"
Invoke-MgGraphRequest -Method Get -Uri $Url

PowerShell
Share
Avatar-Foto

Tobias Asböck

Tobias ist ein Senior System Engineer mit rund 10 Jahren Berufserfahrung für Microsoft 365 Produkte wie SharePoint Online, OneDrive for Business, Teams Collaboration, Entra ID, Information Protection, Universal Print und Microsoft 365 Lizenzierung. Aus der Vergangenheit kennt er über einen Zeitraum von 15+ Jahren die Planung, Administration und den Betrieb von SharePoint Server Umgebungen. Tobias ist ein PowerShell Scripter mit Zertifizierungen für Microsoft 365 Produkte. In seiner Freizeit beschäftigt sich Tobias mit Aktualisierungen in der M365-Welt, ist mit seinem Rennvelo unterwegs und anderen sportlichen Aktivitäten beschäftigt. Bei Fragen kontaktiere mich über LinkedIn oder [email protected].

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert