Kaip eksportuoti „MS Teams“ pokalbių istoriją naudojant „PowerShell“.

Admin

Šiame straipsnyje apžvelgsime, kaip pasiekti ir eksportuoti „Microsoft Teams“ pokalbių pokalbių istoriją naudojant „PowerShell“.

Komandų pokalbiai saugomi paslėptoje vietoje Pokalbių istorija\Komandos pokalbis aplankas a bendrinamą pašto dėžutę, kuri automatiškai sukuriama, kai sukuriate naują „Microsoft 365“ grupę (tai akimirksniu sukurs „Teams“ grupę, svetainę, „SharePoint Online“ biblioteką, „Yammer“ grupę ir kt.).

Tu gali neleisti „Microsoft 365“ nuomotojo vartotojams kurti naujų „Teams“ grupių.

Tačiau negalite pasiekti apsaugoto aplanko su Teams pokalbių istorija naudodami „Outlook“ ar kitą programą. Tu gali eksportuoti Exchange Online pašto dėžutės turinį į PST failą naudojant Turinio paieškaviduje Saugos ir atitikties centras, tada prijunkite PST failą programoje „Outlook“. Bet tai nėra labai patogu. Daug lengviau naudoti „PowerShell“, kad gautumėte „Teams“ pokalbių pranešimų sąrašą.

Norėdami prisijungti prie „Microsoft 365“ nuomininko, naudosime „Microsoft Graph“ API.

Anksčiau mes jums parodėme, kaip tai padaryti
siųsti žinutę į MS Teams pokalbį naudodami PowerShell ir Microsoft Graph API.
  1. Sukurti naują appTeamsView programa Azure portale (Azure AD -> Programos registracija -> Nauja registracija);
  2. Nukopijuokite šias reikšmes:
    Programos (kliento) ID: your_app_ID
    Katalogo (nuomininko) ID: your_tenant_ID
  3. Eikite į API leidimus, spustelėkite Microsoft Graph -> Programos leidimai -> Kanalas -> pasirinkite Kanalas. Pagrindinis. Skaityti viską ir ChannelMessage. Skaityti.Visi. Pridėkite leidimų grupę -> Grupė. Skaityti. Visi. Suteikite tuos pačius leidimus Microsoft Graph -> Deleguoti leidimai ir taip pat Katalogas. AccessAsUser. Visi.
  4. Spustelėkite Suteikti administratoriaus sutikimą…Suteikite programos leidimus „Azure“.
  5. Tada sukurkite paslaptį, kad galėtumėte pasiekti programą. Eiti į Sertifikatai ir paslaptys -> Naujos kliento paslaptys, nurodykite rakto pavadinimą ir jo galiojimo laikotarpį.
    Nukopijuokite vertę iš Vertė laukas:
    Vertė: your_secret
Sukurkite Azure programos paslaptį
Išmokti daugiau apie kaip sujungti Microsoft Graph API su PowerShell.

Tada galite prisijungti prie Microsoft Entra ID (Azure AD) iš PowerShell ir gauti prieigos raktą.

$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. 
Tu gali naudoti sertifikatu pagrįstas autentifikavimas „Microsoft 365“. iš savo PowerShell scenarijaus.

Dabar galite gauti įvairių duomenų iš savo „Microsoft 365“ nuomininko.

Išvardykite savo nuomininko komandas:

#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. 

Tada rodykite kanalų sąrašą Teams grupėje pagal jo 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“: įtraukite kanalų sąrašą į komandą

Galite naudoti šį PowerShell scenarijų, kad gautumėte pranešimų ir atsakymų sąrašą iš Teams kanalo:

$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 scenarijus gauna pokalbių sąrašą iš nurodyto kanalo, atsakymų į kiekvieną pokalbį sąrašą ir sugeneruoja HTML failą su visu pokalbio turiniu. Lentelės atsakymuose į diskusiją yra rakto laukas RE.

Peržiūrėkite mūsų „GitHub“ saugyklą šio scenarijaus kodo: https://github.com/maxbakhub/winposh/blob/main/teams/export_messages_teams_chat.ps1

Eksportuokite „Microsoft Teams“ pokalbį į HTML naudodami „PowerShell“.

„Microsoft Teams“ valdymas naudojant „PowerShell“.
„Microsoft Teams“ valdymas naudojant „PowerShell“.

The Microsoft komandos „PowerShell“ modulis skirtas valdyti komandas iš komandinės eilutės. Galit...

Kaip pateikti užklausą ir pakeisti „Teams“ vartotojo buvimo būseną naudojant „PowerShell“.
Kaip pateikti užklausą ir pakeisti „Teams“ vartotojo buvimo būseną naudojant „PowerShell“.

Gali prireikti patikrinti vartotojo buvimo būseną (Prisijungęs / Išvykęs / Užimtas) „Microsoft Te...

Kaip pateikti užklausą ir pakeisti „Teams“ vartotojo buvimo būseną naudojant „PowerShell“.
Kaip pateikti užklausą ir pakeisti „Teams“ vartotojo buvimo būseną naudojant „PowerShell“.

Gali prireikti patikrinti vartotojo buvimo būseną (Prisijungęs / Išvykęs / Užimtas) „Microsoft Te...