Kako izvesti MS Teams povijest razgovora s PowerShell-om

Admin

U ovom članku ćemo pogledati kako pristupiti i izvesti povijest Microsoft Teams chat razgovora koristeći PowerShell.

Timski razgovori pohranjeni su u skrivenom Povijest razgovora\Timski razgovor mapa u a zajednički poštanski sandučić, koji se automatski stvara kada stvorite novu Microsoft 365 grupu (ovo će odmah stvoriti Teams grupu, web mjesto, SharePoint Online knjižnicu, Yammer grupu itd.).

Možeš spriječiti korisnike zakupca Microsoft 365 da stvaraju nove Teams grupe.

Međutim, ne možete pristupiti zaštićenoj mapi s Teams poviješću razgovora pomoću Outlooka ili druge aplikacije. Možeš izvozite sadržaj poštanskog sandučića Exchange Online u PST datoteku korištenjem Pretraživanje sadržajau Centar za sigurnost i usklađenost, a zatim povežite PST datoteku u programu Outlook. Ali nije previše zgodno. Puno je lakše koristiti PowerShell za dobivanje popisa Teams poruka chata.

Za povezivanje s Microsoft 365 zakupcem koristit ćemo Microsoft Graph API.

Prethodno smo vam pokazali kako pošaljite poruku u MS Teams chat koristeći PowerShell i Microsoft Graph API.
  1. Stvorite novi appTeamsView aplikacija na Azure portalu (Azure AD -> Registracija aplikacije -> Nova registracija);
  2. Kopirajte sljedeće vrijednosti:
    ID aplikacije (klijenta): your_app_ID
    ID imenika (zakupca): your_tenant_ID
  3. Idite na API dozvole, kliknite Microsoft Graph -> Dozvole aplikacije -> Kanal -> odaberite Kanal. Osnovni, temeljni. ReadAll i ChannelMessage. Čitati.svi. Dodajte grupu dopuštenja -> Skupina. Čitati. Svi. Dodijelite ista dopuštenja u Microsoft Graph -> Delegirana dopuštenja i također u Imenik. AccessAsUser. Svi.
  4. Klik Odobrite pristanak administratora za…Dodijelite dopuštenja aplikaciji u Azureu
  5. Zatim izradite tajnu za pristup aplikaciji. Ići Certifikati i tajne -> Tajne novih klijenata, navedite naziv ključa i njegovo razdoblje valjanosti.
    Kopirajte vrijednost iz Vrijednost polje:
    Vrijednost: your_secret
Stvorite tajnu za aplikaciju Azure
Nauči više o kako povezati Microsoft Graph API s PowerShell-om.

Tada se možete povezati na Microsoft Entra ID (Azure AD) iz PowerShell-a i dobiti pristupni token.

$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. 
Možeš koristiti provjera autentičnosti na temelju certifikata u Microsoft 365 iz vaše PowerShell skripte.

Sada možete dobiti razne podatke od svog Microsoft 365 stanara.

Navedite timove u svom zakupcu:

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

Zatim prikažite popis kanala u grupi Timovi prema ID-u:

# 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: Popis kanala u timu

Možete koristiti sljedeću PowerShell skriptu da biste dobili popis poruka i odgovora s kanala Teams:

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

Ova skripta dobiva popis razgovora s navedenog kanala, dobiva popis odgovora za svaki razgovor i generira HTML datoteku s punim sadržajem razgovora. Odgovori na raspravu u tablici sadrže ključno polje RE.

Provjerite naše GitHub repozitorij za ovaj kod skripte: https://github.com/maxbakhub/winposh/blob/main/teams/export_messages_teams_chat.ps1

Izvezite Microsoft Teams chat u html pomoću PowerShell-a

Kako poslati poruku kanalu Teams s PowerShell-om
Kako poslati poruku kanalu Teams s PowerShell-om

Možete slati poruke Teams kanalima iz PowerShell koristeći webhook ili Microsoft Graph API pozive...

Upravljanje Microsoft timovima pomoću PowerShell-a
Upravljanje Microsoft timovima pomoću PowerShell-a

The Microsoftovi timovi Modul PowerShell dizajniran je za upravljanje timovima iz naredbenog retk...

Kako postavljati upite i mijenjati status prisutnosti korisnika Teams pomoću PowerShell-a
Kako postavljati upite i mijenjati status prisutnosti korisnika Teams pomoću PowerShell-a

Možda će biti potrebno provjeriti status prisutnosti korisnika (Online/Odsutan/Zauzet) u Microsof...