PowerShell के साथ MS टीम चैट इतिहास कैसे निर्यात करें

Admin

इस लेख में, हम देखेंगे कि PowerShell का उपयोग करके Microsoft Teams चैट वार्तालापों के इतिहास तक कैसे पहुँचें और निर्यात करें।

टीमों की चैट गुप्त रूप से संग्रहीत की जाती हैं बातचीत का इतिहास\टीम चैट ए में फ़ोल्डर साझा मेलबॉक्स, जो स्वचालित रूप से तब बनता है जब आप एक नया Microsoft 365 समूह बनाते हैं (यह तुरंत एक टीम समूह, एक वेबसाइट, एक SharePoint ऑनलाइन लाइब्रेरी, एक यमर समूह, आदि बना देगा)।

तुम कर सकते हो Microsoft 365 टैनेंट के उपयोगकर्ताओं को नए टीम समूह बनाने से रोकें.

हालाँकि, आप आउटलुक या किसी अन्य ऐप का उपयोग करके टीम चैट इतिहास के साथ संरक्षित फ़ोल्डर तक नहीं पहुंच सकते। तुम कर सकते हो एक्सचेंज ऑनलाइन मेलबॉक्स की सामग्री को पीएसटी फ़ाइल में निर्यात करें का उपयोग करते हुए सामग्री खोजमें सुरक्षा और अनुपालन केंद्र और फिर आउटलुक में पीएसटी फ़ाइल कनेक्ट करें। लेकिन यह बहुत सुविधाजनक नहीं है. टीम चैट संदेशों की सूची प्राप्त करने के लिए PowerShell का उपयोग करना बहुत आसान है।

Microsoft 365 टैनेंट से कनेक्ट करने के लिए, हम Microsoft ग्राफ़ एपीआई का उपयोग करेंगे।

पहले, हमने आपको दिखाया था कि कैसे करें PowerShell का उपयोग करके MS Teams चैट में एक संदेश भेजें और माइक्रोसॉफ्ट ग्राफ़ एपीआई।
  1. कोई नया बनाएं ऐपटीम्सव्यू Azure पोर्टल में ऐप (Azure AD -> ऐप पंजीकरण -> नया पंजीकरण);
  2. निम्नलिखित मानों की प्रतिलिपि बनाएँ:
    एप्लिकेशन (क्लाइंट) आईडी: your_app_ID
    निर्देशिका (किरायेदार) आईडी: your_tenant_ID
  3. API अनुमतियाँ पर जाएँ, Microsoft ग्राफ़ -> एप्लिकेशन अनुमतियाँ -> चैनल -> चयन पर क्लिक करें चैनल। बुनियादी। सब पढ़ें और चैनल संदेश. पढ़ना.सभी. अनुमति समूह जोड़ें -> समूह। पढ़ना। सभी। में समान अनुमतियाँ प्रदान करें Microsoft ग्राफ़ -> प्रत्यायोजित अनुमतियाँ और भी निर्देशिका। AccessAsUser. सभी।
  4. क्लिक इसके लिए व्यवस्थापकीय सहमति प्रदान करें…Azure में ऐप अनुमतियाँ प्रदान करें
  5. फिर ऐप तक पहुंचने के लिए एक रहस्य बनाएं। जाओ प्रमाणपत्र और रहस्य -> नए ग्राहक रहस्य, कुंजी का नाम और उसकी वैधता अवधि निर्दिष्ट करें।
    से मान कॉपी करें कीमत मैदान:
    कीमत: your_secret
Azure ऐप के लिए रहस्य बनाएं
बारे में और सीखो Microsoft Graph API को PowerShell से कैसे कनेक्ट करें.

फिर आप PowerShell से Microsoft Entra ID (Azure AD) से कनेक्ट कर सकते हैं और एक्सेस टोकन प्राप्त कर सकते हैं।

$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 में प्रमाणपत्र-आधारित प्रमाणीकरण आपकी पॉवरशेल स्क्रिप्ट से।

अब आप अपने 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. 

फिर टीम समूह में उसकी आईडी के आधार पर चैनलों की एक सूची प्रदर्शित करें:

# 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
पॉवरशेल: एक टीम में चैनलों की सूची बनाएं

आप टीम्स चैनल से संदेशों और उत्तरों की सूची प्राप्त करने के लिए निम्नलिखित पावरशेल स्क्रिप्ट का उपयोग कर सकते हैं:

$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

PowerShell के साथ Microsoft Teams चैट को html में निर्यात करें

PowerShell के साथ Microsoft Teams का प्रबंधन करना
PowerShell के साथ Microsoft Teams का प्रबंधन करना

माइक्रोसॉफ्ट टीमें पॉवरशेल मॉड्यूल को कमांड लाइन से टीमों को प्रबंधित करने के लिए डिज़ाइन किया ग...

PowerShell के साथ टीम उपयोगकर्ता उपस्थिति स्थिति को कैसे क्वेरी करें और बदलें
PowerShell के साथ टीम उपयोगकर्ता उपस्थिति स्थिति को कैसे क्वेरी करें और बदलें

कुछ एकीकरण स्क्रिप्ट के लिए कोई विशेष कार्रवाई करने से पहले Microsoft Teams में उपयोगकर्ता की उपस...

PowerShell के साथ टीम उपयोगकर्ता उपस्थिति स्थिति को कैसे क्वेरी करें और बदलें
PowerShell के साथ टीम उपयोगकर्ता उपस्थिति स्थिति को कैसे क्वेरी करें और बदलें

कुछ एकीकरण स्क्रिप्ट के लिए कोई विशेष कार्रवाई करने से पहले Microsoft Teams में उपयोगकर्ता की उपस...