Ako exportovať históriu chatu MS Teams pomocou PowerShell

Admin

V tomto článku sa pozrieme na to, ako získať prístup a exportovať históriu konverzácií Microsoft Teams pomocou PowerShell.

Tímové rozhovory sú uložené v skrytom priestore História konverzácie\Tímový chat priečinok v a zdieľaná schránka, ktorá sa automaticky vytvorí pri vytváraní novej skupiny v Microsoft 365 (tým sa okamžite vytvorí skupina Teams, webová lokalita, knižnica SharePoint Online, skupina Yammer atď.).

Môžeš zabrániť používateľom nájomníka Microsoft 365 vo vytváraní nových skupín Teams.

K chránenému priečinku s históriou rozhovorov Teams však nemôžete pristupovať pomocou Outlooku alebo inej aplikácie. Môžeš exportovať obsah poštovej schránky Exchange Online do súboru PST použitím Vyhľadávanie obsahuv Centrum zabezpečenia a súladu a potom pripojte súbor PST v programe Outlook. Ale nie je to príliš pohodlné. Je oveľa jednoduchšie použiť PowerShell na získanie zoznamu správ chatu Teams.

Na pripojenie k nájomníkovi Microsoft 365 použijeme rozhranie Microsoft Graph API.

Predtým sme vám ukázali, ako na to odoslať správu do chatu MS Teams pomocou PowerShell a Microsoft Graph API.
  1. Vytvorte nový appTeamsView aplikáciu na portáli Azure (Azure AD -> Registrácia aplikácie -> Nová registrácia);
  2. Skopírujte nasledujúce hodnoty:
    ID aplikácie (klienta): your_app_ID
    ID adresára (nájomca): your_tenant_ID
  3. Prejdite na Povolenia rozhrania API, kliknite na položku Microsoft Graph -> Povolenia aplikácie -> Kanál -> vyberte kanál. Základné. ReadAll a ChannelMessage. Čítať.Všetky. Pridajte povolenie Skupina -> Skupina. Čítať. Všetky. Udeľte rovnaké povolenia v Microsoft Graph -> Delegované povolenia a tiež v Adresár. AccessAsUser. Všetky.
  4. Kliknite Udeliť súhlas správcu pre…Udeľte povolenia aplikácii v Azure
  5. Potom vytvorte tajomstvo na prístup k aplikácii. Ísť do Certifikáty a tajomstvá -> Nové tajomstvá klienta, uveďte názov kľúča a dobu jeho platnosti.
    Skopírujte hodnotu z Hodnota lúka:
    Hodnota: your_secret
Vytvorte tajomstvo pre aplikáciu Azure
Naučiť sa viac o ako prepojiť Microsoft Graph API s PowerShell.

Potom sa môžete pripojiť k Microsoft Entra ID (Azure AD) z PowerShell a získať prístupový token.

$clientId = "your_app_ID"
$tenantName = "yourtenant.onmicrosoft.com"
$clientSecret = "your_secret"
$resource = "https://graph.microsoft.com/"
$Username = "[email protected]"
$Password = "yourpassword"
$ReqTokenBody = @{ Grant_Type = "Password" client_Id = $clientID Client_Secret = $clientSecret Username = $Username Password = $Password Scope = "https://graph.microsoft.com/.default"
}
$TokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantName/oauth2/v2.0/token" -Method POST -Body $ReqTokenBody. 
Môžeš použiť overenie založené na certifikáte v Microsoft 365 z vášho skriptu PowerShell.

Teraz môžete získať rôzne údaje od svojho nájomníka Microsoft 365.

Uveďte tímy vo svojom nájomníkovi:

#Getting all Teams. $header= @{Authorization = "Bearer $($TokenResponse.access_token)"}
$BaseURI = "https://graph.microsoft.com/beta"
$AllMicrosoftTeams = (Invoke-RestMethod -Uri "$($BaseURI)/groups?'$filter=resourceProvisioningOptions/Any(x: x eq 'Team')" -Headers $header -Method Get -ContentType "application/json").value. $AllMicrosoftTeams| FT id, DisplayName, Description. 

Potom zobrazte zoznam kanálov v skupine Teams podľa ich ID:

# List channels in Team. $TeamsID="your_team_id"
$TeamsChannels = (Invoke-RestMethod -Uri "$($BaseURI)/teams/$($TeamsID)/channels" -Headers $Header -Method Get -ContentType "application/json").value. $TeamsChannels | FT id, DisplayName, Description
PowerShell: Zoznam kanálov v tíme

Na získanie zoznamu správ a odpovedí z kanála Teams môžete použiť nasledujúci skript PowerShell:

$ChannelID="your_chat_id "
$Header =@{Authorization = "Bearer $($Tokenresponse.access_token)"} $apiUrl = "https://graph.microsoft.com/beta/teams/$TeamsID/channels/$ChannelID/messages"
$Data = Invoke-RestMethod -Uri $apiUrl -Headers $header -Method Get. $Messages = ($Data | Select-Object Value).Value. class messageData. { [string]$dateTime [string]$from [string]$body [string]$re messageData() { $this.dateTime = "" $this.from = "" $this.body = "" $this.re = "" }
}
$messageSet = New-Object System.Collections.ArrayList; foreach ($message in $Messages)
{ $result = New-object messageData $result.DateTime=Get-Date -Date (($message).createdDateTime) -Format 'yyyy/MM/dd HH: mm' $result.from = $message.from.user.displayName $result.body = $message.body.content $messageSet.Add($result) #parsing replies $repliesURI = "https://graph.microsoft.com/beta/teams/" + $TeamsID + "/channels/" + $ChannelID + "/messages/" + $message.ID + "/replies?`$top100" $repliesResponse = Invoke-RestMethod -Method Get -Uri $repliesURI -Headers $header foreach ($reply in $repliesResponse.value) { $replyData = New-Object messageData $replyData.dateTime = Get-Date -Date (($reply).createdDateTime) -Format 'yyyy/MM/dd HH: mm' $replyData.from = $reply.from.user.displayName $replyData.body= $reply.body.content $replyData.re="RE" $messageSet.Add($replyData) } }
$messageSet|ConvertTo-Html | Out-File c:\ps\teams_chat_history.html -Encoding utf8. 

Tento skript získa zoznam konverzácií zo zadaného kanála, získa zoznam odpovedí pre každú konverzáciu a vygeneruje súbor HTML s úplným obsahom rozhovoru. Odpovede na diskusiu v tabuľke obsahujú kľúčové pole RE.

Tento kód skriptu nájdete v našom úložisku GitHub: https://github.com/maxbakhub/winposh/blob/main/teams/export_messages_teams_chat.ps1

Exportujte chat Microsoft Teams do html pomocou PowerShell

Odoslanie e-mailu na kanál Microsoft Teams
Odoslanie e-mailu na kanál Microsoft Teams

V niektorých prípadoch môžu používatelia potrebovať odoslať alebo preposlať e-mail z doručenej po...

Ako zakázať automatické spustenie Microsoft Teams
Ako zakázať automatické spustenie Microsoft Teams

Predvolene sa pri inštalácii balíka Office 365/Office 2019 nainštalujú všetky aplikácie balíka Mi...

Ako poslať správu na kanál Teams pomocou PowerShell
Ako poslať správu na kanál Teams pomocou PowerShell

Správy môžete odosielať do kanálov Teams z prostredia PowerShell pomocou webhooku alebo volaní ro...