Kuinka viedä MS Teams -keskusteluhistoriaa PowerShellin avulla

Admin

Tässä artikkelissa tarkastellaan, kuinka pääset käsiksi ja viedään Microsoft Teamsin chat-keskustelujen historiaa PowerShellin avulla.

Teams-chatit tallennetaan piiloon Keskusteluhistoria\Tiimichat kansio a jaettu postilaatikko, joka luodaan automaattisesti, kun luot uuden Microsoft 365 -ryhmän (tämä luo välittömästi Teams-ryhmän, verkkosivuston, SharePoint Online -kirjaston, Yammer-ryhmän jne.).

Sinä pystyt estää Microsoft 365 -vuokraajan käyttäjiä luomasta uusia Teams-ryhmiä.

Et kuitenkaan voi käyttää suojattua kansiota Teamsin keskusteluhistorialla Outlookin tai muun sovelluksen avulla. Sinä pystyt viedä Exchange Online -postilaatikon sisällön PST-tiedostoon käyttämällä Sisältöhakuin Security and Compliance Center ja liitä sitten PST-tiedosto Outlookissa. Mutta se ei ole liian kätevä. PowerShellin käyttö on paljon helpompaa saada luettelo Teamsin chat-viesteistä.

Käytämme Microsoft Graph -sovellusliittymää muodostaaksemme yhteyden Microsoft 365 -vuokraajaan.

Aiemmin näytimme sinulle, miten lähettää viestin MS Teams -chatiin PowerShellin avulla ja Microsoft Graph API.
  1. Luoda uusi appTeamsView sovellus Azure Portalissa (Azure AD -> Sovelluksen rekisteröinti -> Uusi rekisteröinti);
  2. Kopioi seuraavat arvot:
    Sovelluksen (asiakkaan) tunnus: your_app_ID
    Hakemiston (vuokralaisen) tunnus: your_tenant_ID
  3. Siirry kohtaan API-oikeudet, napsauta Microsoft Graph -> Sovellusoikeudet -> Kanava -> valitse kanava. Perus. Lue kaikki ja Kanavaviesti. Lukea.Kaikki. Lisää käyttöoikeusryhmä -> Ryhmä. Lukea. Kaikki. Myönnä samat käyttöoikeudet sisään Microsoft Graph -> Delegoidut käyttöoikeudet ja myös sisään Hakemisto. AccessAsUser. Kaikki.
  4. Klikkaus Myönnä järjestelmänvalvojan suostumus…Myönnä sovelluksen käyttöoikeudet Azuressa
  5. Luo sitten salaisuus päästäksesi sovellukseen. Mene Sertifikaatit ja salaisuudet -> Uudet asiakassalaisuudet, määritä avaimen nimi ja sen voimassaoloaika.
    Kopioi arvo tiedostosta Arvo ala:
    Arvo: your_secret
Luo salaisuus Azure-sovellukselle
Lisätietoja: kuinka yhdistää Microsoft Graph API PowerShelliin.

Sitten voit muodostaa yhteyden Microsoft Entra ID: hen (Azure AD) PowerShellistä ja saada käyttöoikeustunnuksen.

$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. 
Voit käyttää varmenteeseen perustuva todennus Microsoft 365:ssä PowerShell-skriptistäsi.

Nyt voit saada erilaisia ​​tietoja Microsoft 365 -vuokraajaltasi.

Luettele vuokralaisensi tiimit:

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

Näytä sitten luettelo Teams-ryhmän kanavista sen tunnuksen mukaan:

# 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: Listaa ryhmän kanavat

Voit käyttää seuraavaa PowerShell-skriptiä saadaksesi luettelon viesteistä ja vastauksista Teams-kanavalta:

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

Tämä skripti hakee luettelon määritetyn kanavan keskusteluista, saa luettelon kunkin keskustelun vastauksista ja luo HTML-tiedoston, joka sisältää keskustelun koko sisällön. Taulukon vastaukset keskusteluun sisältävät avainkentän RE.

Katso tämä komentosarjakoodi GitHub-varastossamme: https://github.com/maxbakhub/winposh/blob/main/teams/export_messages_teams_chat.ps1

Vie Microsoft Teams -keskustelut html-muotoon PowerShellin avulla

Kuinka viedä MS Teams -keskusteluhistoriaa PowerShellin avulla
Kuinka viedä MS Teams -keskusteluhistoriaa PowerShellin avulla

Tässä artikkelissa tarkastellaan, kuinka pääset käsiksi ja viedään Microsoft Teamsin chat-keskust...