Kako izvoziti zgodovino klepetov MS Teams s PowerShell

Admin

V tem članku si bomo ogledali, kako dostopati in izvoziti zgodovino pogovorov v klepetu Microsoft Teams z uporabo lupine PowerShell.

Klepeti ekip so shranjeni v skritem Zgodovina pogovorov\Timski klepet mapa v a skupni poštni predal, ki se samodejno ustvari, ko ustvarite novo skupino Microsoft 365 (s tem boste takoj ustvarili skupino Teams, spletno mesto, knjižnico SharePoint Online, skupino Yammer itd.).

Ti lahko uporabnikom najemnika Microsoft 365 preprečite ustvarjanje novih skupin Teams.

Vendar pa do zaščitene mape z zgodovino klepeta Teams ne morete dostopati z Outlookom ali drugo aplikacijo. Ti lahko izvozite vsebino nabiralnika Exchange Online v datoteko PST uporabo Iskanje po vsebiniv Center za varnost in skladnost in nato povežite datoteko PST v Outlooku. Vendar ni preveč priročno. Za pridobitev seznama sporočil klepeta Teams je veliko lažje uporabiti PowerShell.

Za povezavo z najemnikom Microsoft 365 bomo uporabili Microsoft Graph API.

Prej smo vam pokazali, kako pošljite sporočilo v klepet MS Teams z uporabo PowerShell in Microsoft Graph API.
  1. Ustvari novo appTeamsView aplikacija na portalu Azure (Azure AD -> Registracija aplikacije -> Nova registracija);
  2. Kopirajte naslednje vrednosti:
    ID aplikacije (odjemalca): your_app_ID
    ID imenika (najemnika): your_tenant_ID
  3. Pojdite na Dovoljenja za API, kliknite Microsoft Graph -> Dovoljenja za aplikacije -> Kanal -> izberite Kanal. Osnovno. ReadAll in ChannelMessage. Preberi.Vse. Dodajte skupino dovoljenj -> skupina. Preberi. Vse. Dodelite enaka dovoljenja v Microsoft Graph -> Delegirana dovoljenja in tudi v Imenik. AccessAsUser. Vse.
  4. Kliknite Podeli skrbniško soglasje za ...Dodelite dovoljenja za aplikacije v Azure
  5. Nato ustvarite skrivnost za dostop do aplikacije. Pojdi do Certifikati in skrivnosti -> Nove skrivnosti strank, določite ime ključa in obdobje njegove veljavnosti.
    Kopirajte vrednost iz Vrednost polje:
    Vrednost: your_secret
Ustvari skrivnost za aplikacijo Azure
Izvedite več o kako povezati Microsoft Graph API s PowerShell.

Nato se lahko povežete z Microsoft Entra ID (Azure AD) iz lupine PowerShell in pridobite žeton za dostop.

$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. 
Lahko uporabiš preverjanje pristnosti na podlagi potrdila v Microsoft 365 iz vašega skripta PowerShell.

Zdaj lahko od svojega najemnika Microsoft 365 pridobite različne podatke.

Navedite ekipe v vašem najemniku:

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

Nato prikažite seznam kanalov v skupini Teams glede na 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: seznam kanalov v skupini

Za pridobitev seznama sporočil in odgovorov iz kanala Teams lahko uporabite ta skript PowerShell:

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

Ta skript pridobi seznam pogovorov iz določenega kanala, dobi seznam odgovorov za vsak pogovor in ustvari datoteko HTML s celotno vsebino klepeta. Odgovori na razpravo v tabeli vsebujejo ključno polje RE.

Oglejte si naše skladišče GitHub za to kodo skripta: https://github.com/maxbakhub/winposh/blob/main/teams/export_messages_teams_chat.ps1

Izvozite klepet Microsoft Teams v html s PowerShell

Kako izvoziti zgodovino klepetov MS Teams s PowerShell
Kako izvoziti zgodovino klepetov MS Teams s PowerShell

V tem članku si bomo ogledali, kako dostopati in izvoziti zgodovino pogovorov v klepetu Microsoft...