У овом чланку ћемо погледати како да приступимо и извеземо историју Мицрософт Теамс разговора за ћаскање користећи ПоверСхелл.
Тимски разговори се чувају у скривеном Историја разговора\Тимско ћаскање фасцикла у а заједничко поштанско сандуче, који се аутоматски креира када креирате нову Мицрософт 365 групу (ово ће тренутно креирати групу тимова, веб локацију, СхареПоинт Онлине библиотеку, Иаммер групу итд.).
Међутим, не можете да приступите заштићеној фасцикли са историјом ћаскања Теамс-а користећи Оутлоок или другу апликацију. Можете извозите садржај Екцханге Онлине поштанског сандучета у ПСТ датотеку Користећи Цонтент Сеарцху Центар за безбедност и усклађеност, а затим повежите ПСТ датотеку у Оутлоок. Али није превише згодно. Много је лакше користити ПоверСхелл да бисте добили листу Теамс порука за ћаскање.
Да бисмо се повезали са Мицрософт 365 закупцем, користићемо Мицрософт Грапх АПИ.
- Створити нова аппТеамсВиев апликација на Азуре порталу (Азуре АД -> Регистрација апликације -> Нова регистрација);
- Копирајте следеће вредности:
ИД апликације (клијента):your_app_ID
ИД именика (закупца):your_tenant_ID
- Идите на АПИ дозволе, кликните на Мицрософт Грапх -> Дозволе апликације -> Канал -> изаберите Канал. Басиц. РеадАлл и ЦханнелМессаге. читати.Све. Додајте групу дозвола -> Група. Читати. Све. Дајте исте дозволе у Мицрософт Грапх -> Делегиране дозволе и такође у Именик. АццессАсУсер. Све.
- Кликните Дајте сагласност администратора за…
- Затим креирајте тајну за приступ апликацији. Иди на Сертификати и тајне -> Нове тајне клијената, наведите име кључа и период његовог важења.
Копирајте вредност из Валуе поље:
вредност:your_secret
Затим се можете повезати на Мицрософт Ентра ИД (Азуре АД) из ПоверСхелл-а и добити токен за приступ.
$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.
Сада можете да добијете различите податке од свог Мицрософт 365 закупца.
Наведите тимове у вашем закупцу:
#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.
Затим прикажите листу канала у групи Тимови према ИД-у:
# 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
Можете да користите следећу ПоверСхелл скрипту да бисте добили листу порука и одговора са канала Теамс:
$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.
Ова скрипта добија листу разговора са наведеног канала, добија листу одговора за сваки разговор и генерише ХТМЛ датотеку са пуним садржајем ћаскања. Одговори на дискусију у табели садрже кључно поље RE
.
Погледајте наше ГитХуб спремиште за овај код скрипте: https://github.com/maxbakhub/winposh/blob/main/teams/export_messages_teams_chat.ps1