როგორ გავიტანოთ MS Teams ჩატის ისტორია PowerShell-ით

Admin

ამ სტატიაში ჩვენ განვიხილავთ, თუ როგორ მივიღოთ წვდომა და ექსპორტი Microsoft Teams ჩეთის საუბრების ისტორიაზე PowerShell-ის გამოყენებით.

გუნდების ჩეთები ინახება ფარულად საუბრის ისტორია\გუნდური ჩატი საქაღალდე ა საერთო საფოსტო ყუთი, რომელიც ავტომატურად იქმნება ახალი Microsoft 365 ჯგუფის შექმნისას (ეს მომენტალურად შექმნის Teams ჯგუფს, ვებსაიტს, SharePoint Online ბიბლიოთეკას, Yammer ჯგუფს და ა.შ.).

Შენ შეგიძლია ხელი შეუშალოს Microsoft 365 მოიჯარეს მომხმარებლებს ახალი Teams ჯგუფების შექმნაში.

თუმცა, თქვენ ვერ შეხვალთ დაცულ საქაღალდეში Teams ჩეთის ისტორიით Outlook-ის ან სხვა აპის გამოყენებით. Შენ შეგიძლია Exchange Online საფოსტო ყუთის შიგთავსის ექსპორტი PST ფაილში გამოყენებით შინაარსის ძიებაწელს უსაფრთხოებისა და შესაბამისობის ცენტრი და შემდეგ დააკავშირეთ PST ფაილი Outlook-ში. მაგრამ ეს არ არის ძალიან მოსახერხებელი. ბევრად უფრო ადვილია PowerShell-ის გამოყენება გუნდების ჩატის შეტყობინებების სიის მისაღებად.

Microsoft 365 მოიჯარესთან დასაკავშირებლად, ჩვენ გამოვიყენებთ Microsoft Graph API-ს.

ადრე ჩვენ გაჩვენეთ როგორ
გაგზავნეთ შეტყობინება MS Teams ჩეთში PowerShell-ის გამოყენებით და Microsoft Graph API.
  1. შექმენით ახალი appTeamsView აპლიკაცია Azure პორტალში (Azure AD -> App რეგისტრაცია -> ახალი რეგისტრაცია);
  2. დააკოპირეთ შემდეგი მნიშვნელობები:
    განაცხადის (კლიენტის) ID: your_app_ID
    დირექტორია (მოქირავნე) ID: your_tenant_ID
  3. გადადით API ნებართვებზე, დააჭირეთ Microsoft Graph -> აპლიკაციის ნებართვები -> არხი -> აირჩიეთ არხი. ძირითადი. წაიკითხეთ ყველა და Channel Message. წაიკითხეთ.ყველა. დაამატეთ ნებართვის ჯგუფი -> ჯგუფი. წაიკითხეთ. ყველა. მიეცით იგივე ნებართვები Microsoft Graph -> დელეგირებული ნებართვები და ასევე დირექტორია. AccessAsUser. ყველა.
  4. დააწკაპუნეთ ადმინისტრატორის თანხმობის გაცემა…მიეცით აპის ნებართვები Azure-ში
  5. შემდეგ შექმენით საიდუმლო აპლიკაციაზე წვდომისთვის. Წადი სერთიფიკატები და საიდუმლოებები -> ახალი კლიენტის საიდუმლოებები, მიუთითეთ გასაღების სახელი და მისი მოქმედების პერიოდი.
    დააკოპირეთ მნიშვნელობა დან ღირებულება სფერო:
    ღირებულება: your_secret
შექმენით საიდუმლო Azure აპისთვის
შეიტყვეთ მეტი როგორ დააკავშიროთ Microsoft Graph API PowerShell-თან.

შემდეგ შეგიძლიათ დაუკავშირდეთ Microsoft Entra ID-ს (Azure AD) PowerShell-იდან და მიიღოთ წვდომის ჟეტონი.

$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. 
Შეგიძლია გამოიყენო სერთიფიკატზე დაფუძნებული ავთენტიფიკაცია Microsoft 365-ში თქვენი PowerShell სკრიპტიდან.

ახლა თქვენ შეგიძლიათ მიიღოთ სხვადასხვა მონაცემები თქვენი Microsoft 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. 

შემდეგ აჩვენეთ არხების სია გუნდების ჯგუფში მისი 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: ჩამოთვალეთ არხები გუნდში

თქვენ შეგიძლიათ გამოიყენოთ შემდეგი 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. 

ეს სკრიპტი იღებს საუბრების ჩამონათვალს მითითებული არხიდან, იღებს პასუხების სიას თითოეული საუბრისთვის და ქმნის HTML ფაილს ჩატის სრული შინაარსით. ცხრილის დისკუსიაზე პასუხები შეიცავს საკვანძო ველს RE.

შეამოწმეთ ჩვენი GitHub საცავი ამ სკრიპტის კოდისთვის: https://github.com/maxbakhub/winposh/blob/main/teams/export_messages_teams_chat.ps1

Microsoft Teams ჩატის ექსპორტი html-ში PowerShell-ით

ელფოსტის გაგზავნა Microsoft Teams Channel-ზე
ელფოსტის გაგზავნა Microsoft Teams Channel-ზე

ზოგიერთ შემთხვევაში, მომხმარებლებს შეიძლება დასჭირდეთ ელფოსტის გაგზავნა ან გაგზავნა Outlook-ის შე...

როგორ გამორთოთ Microsoft Teams Auto Startup
როგორ გამორთოთ Microsoft Teams Auto Startup

ნაგულისხმევად, როდესაც თქვენ დააინსტალირებთ Office 365/Office 2019, დაინსტალირებულია ყველა Micros...

როგორ გავუგზავნოთ შეტყობინება Teams Channel-ს PowerShell-ით
როგორ გავუგზავნოთ შეტყობინება Teams Channel-ს PowerShell-ით

თქვენ შეგიძლიათ გაგზავნოთ შეტყობინებები Teams-ის არხებზე PowerShell-იდან webhook-ის ან Microsoft ...