Šajā rakstā mēs apskatīsim, kā piekļūt Microsoft Teams tērzēšanas sarunu vēsturei un eksportēt to, izmantojot PowerShell.
Teams tērzēšanas sarunas tiek glabātas slēptā vietā Sarunu vēsture\Komandas tērzēšana mapē a koplietota pastkaste, kas tiek automātiski izveidota, kad veidojat jaunu Microsoft 365 grupu (tādējādi uzreiz tiks izveidota Teams grupa, vietne, SharePoint Online bibliotēka, Yammer grupa utt.).
Tomēr aizsargātajai mapei ar Teams tērzēšanas vēsturi nevar piekļūt, izmantojot programmu Outlook vai citu programmu. Jūs varat eksportēt Exchange Online pastkastes saturu uz PST failu izmantojot Satura meklēšanaiekš Drošības un atbilstības centrs un pēc tam pievienojiet PST failu programmā Outlook. Bet tas nav pārāk ērti. Ir daudz vienkāršāk izmantot PowerShell, lai iegūtu Teams tērzēšanas ziņojumu sarakstu.
Lai izveidotu savienojumu ar Microsoft 365 nomnieku, mēs izmantosim Microsoft Graph API.
- Izveidojiet jaunu appTeamsView lietotne Azure portālā (Azure AD -> Lietotņu reģistrācija -> Jauna reģistrācija);
- Kopējiet šādas vērtības:
Lietojumprogrammas (klienta) ID:your_app_ID
Direktorija (īrnieka) ID:your_tenant_ID
- Dodieties uz API atļaujas, noklikšķiniet uz Microsoft Graph -> Lietojumprogrammas atļaujas -> Kanāls -> atlasiet Kanāls. Pamata. Lasīt visu un Kanāla ziņojums. Lasīt.Visi. Pievienojiet atļauju grupu -> Grupa. Lasīt. Visi. Piešķiriet tādas pašas atļaujas Microsoft Graph -> Deleģētās atļaujas un arī iekšā Katalogs. AccessAsUser. Visi.
- Klikšķis Piešķirt administratora piekrišanu…
- Pēc tam izveidojiet noslēpumu, lai piekļūtu lietotnei. Iet uz Sertifikāti un noslēpumi -> Jauni klienta noslēpumi, norādiet atslēgas nosaukumu un tā derīguma termiņu.
Kopējiet vērtību no Vērtība lauks:
Vērtība:your_secret
Pēc tam varat izveidot savienojumu ar Microsoft Entra ID (Azure AD) no PowerShell un iegūt piekļuves pilnvaru.
$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.
Tagad varat iegūt dažādus datus no sava Microsoft 365 nomnieka.
Uzskaitiet komandas savā īrniekā:
#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.
Pēc tam parādiet kanālu sarakstu grupā Teams pēc tā 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
Varat izmantot šo PowerShell skriptu, lai iegūtu ziņojumu un atbilžu sarakstu no Teams kanāla:
$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.
Šis skripts iegūst sarunu sarakstu no norādītā kanāla, katrai sarunai atbilžu sarakstu un ģenerē HTML failu ar pilnu tērzēšanas saturu. Atbildes uz diskusiju tabulā satur atslēgas lauku RE
.
Apskatiet mūsu GitHub krātuvi šim skripta kodam: https://github.com/maxbakhub/winposh/blob/main/teams/export_messages_teams_chat.ps1