Office 365 में एक पूर्ण SMTP लॉग निर्यात करने के लिए कैसे करें


10

Office 365 में, क्या SMTP लॉग निर्यात करना संभव है? शायद पॉवरशेल या किसी अन्य तरीके से।

मेरा लक्ष्य एक विशिष्ट डोमेन से भेजे जाने वाले सभी संदेशों का पूर्ण अवलोकन करना है।


a complete overview of all messages send from and to a specific domain तुम्हें पता है, सामान की तरह है कि आम तौर पर क्या आप "बादल" जाने पर छोड़ देते हैं। यदि आपको उस तरह की पूर्ण निगरानी और लॉगिंग की आवश्यकता है, तो शायद क्लाउड सेवाएँ वह नहीं हैं जो आप वास्तव में चाहते हैं।
होपलेसएनबीबी

3
Office365 के लिए और अधिक है जो आपको लगता है कि होपलेस N00b है। :-)
ज़ेडा-एनएल

जवाबों:


12

2 स्क्रिप्ट्स को ऑनलाइन कहीं मिला कर, मैं इसका पता लगाने में कामयाब रहा।

यह स्क्रिप्ट है जिसने काम किया।

#Accept input parameters 
Param( 
    [Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)] 
    [string] $Office365Username, 
    [Parameter(Position=1, Mandatory=$true, ValueFromPipeline=$true)] 
    [string] $Office365Password 
) 

$OutputFile = "DetailedMessageStats.csv" 

Write-Host "Connecting to Office 365 as $Office365Username..." 

#Connect to Office 365 
$SecurePassword = $Office365Password | ConvertTo-SecureString -AsPlainText -Force 
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Office365Username, $SecurePassword 
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell/" -Credential $cred -Authentication Basic -AllowRedirection  
Import-PSSession $session -AllowClobber 

Write-Host "Collecting Recipients..." 

#Collect all recipients from Office 365 
$Recipients = Get-Recipient -ResultSize Unlimited | select PrimarySMTPAddress 
$MailTraffic = @{} 
foreach($Recipient in $Recipients) 
{ 
    $MailTraffic[$Recipient.PrimarySMTPAddress.ToLower()] = @{} 
} 
$Recipients = $null 

#Collect Message Tracking Logs (These are broken into "pages" in Office 365 so we need to collect them all with a loop) 
$Messages = $null 
$Page = 1 
do 
{ 

    Write-Host "Collecting Message Tracking - Page $Page..." 
    $CurrMessages = Get-MessageTrace -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date)  -PageSize 5000  -Page $Page| Select Received,*Address,*IP,Subject,Status,Size

    if ($CurrMessages -ne $null)
      {
      $CurrMessages | Export-Csv C:\FILE-$PAGE.csv -NoTypeInformation
      }
    $Page++ 
    $Messages += $CurrMessages 


} 
until ($CurrMessages -eq $null) 

Remove-PSSession $session 

महान स्क्रिप्ट! मुझे अपनी Office 365 की आवृत्ति से कनेक्ट करने के लिए URL को संशोधित करना पड़ा। मैंने फ़ाइलों को प्राप्त करने के लिए कनेक्शन और आपकी स्क्रिप्ट के बाकी हिस्सों को संभालने के लिए दूरस्थ PowerShell का उपयोग करके कनेक्ट टू एक्सचेंज ऑनलाइन की जानकारी का उपयोग किया ।
जेसन मैसी

-1

मैंने सभी लॉग को समेटने के लिए कुछ लाइनों में थोड़ा बदलाव किया

$OutputFile = "c:\temp\SMTPlog"

$CurrMessages | Export-Csv "$($OutputFile)$($Page).csv" -NoTypeInformation

3
नमस्ते, मुझे संदेह है कि आप उस विवरण को जोड़ने के लिए या किसी अन्य उत्तर पर टिप्पणी छोड़ने के लिए उत्तर को संपादित करना चाहते थे, यदि आप इसे एक उत्तर के रूप में छोड़ने का इरादा रखते हैं, तो मैं आपके परिवर्तन के साथ पूरी स्क्रिप्ट को पेस्ट करने का सुझाव देता हूं और ध्यान दें कि यह आधारित है दूसरे उत्तर पर, इसलिए यह एक पूर्ण उत्तर होगा।
yagmoth555
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.