Selles artiklis vaatleme, kuidas pääseda juurde ja eksportida PowerShelli abil Microsoft Teamsi vestlusvestluste ajalugu.
Meeskondade vestlused salvestatakse peidetud kausta Vestluste ajalugu\Meeskonnavestlus kaustas a jagatud postkast, mis luuakse automaatselt, kui loote uue Microsoft 365 rühma (see loob koheselt Teamsi rühma, veebisaidi, SharePoint Online'i teegi, Yammeri rühma jne).
Siiski ei pääse te Outlooki või mõne muu rakendusega Teamsi vestlusajalooga kaitstud kausta juurde. Sa saad eksportida Exchange Online'i postkasti sisu PST-faili kasutades Sisu otsingaastal Turva- ja vastavuskeskus ja seejärel ühendage Outlookis PST-fail. Kuid see pole liiga mugav. Teamsi vestlussõnumite loendi hankimiseks on PowerShelli kasutamine palju lihtsam.
Microsoft 365 rentnikuga ühenduse loomiseks kasutame Microsoft Graphi API-t.
- Loo uus appTeamsView rakendus Azure'i portaalis (Azure AD -> Rakenduse registreerimine -> Uus registreerimine);
- Kopeerige järgmised väärtused:
Rakenduse (kliendi) ID:your_app_ID
Kataloogi (üürniku) ID:your_tenant_ID
- Avage API õigused, klõpsake Microsoft Graph -> Rakenduse õigused -> Kanal -> valige Kanal. Põhiline. Loe kõik ja Kanali sõnum. Lugege.Kõik. Lisage lubade rühm -> Grupp. Lugege. Kõik. Andke sisse samad õigused Microsoft Graph -> Delegeeritud õigused ja ka sisse Kataloog. AccessAsUser. Kõik.
- Klõpsake Andke administraatori nõusolek…
- Seejärel looge rakendusele juurdepääsuks saladus. Minema Sertifikaadid ja saladused -> Uued kliendi saladused, määrake võtme nimi ja selle kehtivusaeg.
Kopeerige väärtus failist Väärtus väli:
Väärtus:your_secret
Seejärel saate PowerShellist ühenduse luua Microsoft Entra ID-ga (Azure AD) ja hankida juurdepääsuluba.
$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.
Nüüd saate oma Microsoft 365 rentnikult erinevaid andmeid.
Loetlege oma rentniku meeskonnad:
#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.
Seejärel kuvage rühmas Teams kanalite loend selle ID järgi:
# 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
Teamsi kanalilt sõnumite ja vastuste loendi hankimiseks saate kasutada järgmist PowerShelli skripti.
$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.
See skript hangib määratud kanali vestluste loendi, iga vestluse vastuste loendi ja genereerib vestluse täieliku sisuga HTML-faili. Tabeli vastused arutelule sisaldavad võtmevälja RE
.
Selle skriptikoodi leiate meie GitHubi hoidlast: https://github.com/maxbakhub/winposh/blob/main/teams/export_messages_teams_chat.ps1