Cách xuất Nhật ký SMTP đầy đủ trong Office 365


10

Trong Office 365, có thể xuất nhật ký SMTP không? Có thể trong powershell hoặc bất kỳ cách nào khác.

Mục tiêu của tôi là có một cái nhìn tổng quan hoàn chỉnh về tất cả các tin nhắn được gửi từ và đến một tên miền cụ thể.


a complete overview of all messages send from and to a specific domain Bạn biết đấy, những thứ như thế nói chung là những gì bạn từ bỏ khi bạn đi đến "đám mây". Nếu bạn cần / muốn loại giám sát và ghi nhật ký đầy đủ đó, có thể dịch vụ đám mây không phải là thứ bạn thực sự muốn.
HoplessN00b

3
Có nhiều hơn với Office365 mà bạn nghĩ HoplessN00b. :-)
ZEDA-NL

Câu trả lời:


12

Bằng cách kết hợp 2 tập lệnh được tìm thấy ở đâu đó trực tuyến, tôi đã tìm ra nó.

Đây là kịch bản đã làm công việc.

#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 

Kịch bản tuyệt vời! Tôi đã phải sửa đổi URL để kết nối với phiên bản Office 365 của mình. Tôi đã sử dụng thông tin tại Connect to Exchange Online bằng PowerShell từ xa để xử lý kết nối và phần còn lại của tập lệnh của bạn để lấy các tệp.
Jason Massey

-1

Tôi đã thực hiện một thay đổi nhỏ cho một vài dòng để tạo ra tất cả các bản ghi

$OutputFile = "c:\temp\SMTPlog"

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

3
Xin chào, tôi nghi ngờ bạn muốn chỉnh sửa câu trả lời để thêm chi tiết đó hoặc để lại nhận xét cho câu trả lời khác, nếu bạn có ý định để lại câu trả lời tôi đề nghị dán toàn bộ tập lệnh với thay đổi của bạn và để lại ghi chú rằng nó dựa trên trên câu trả lời khác, vì vậy nó sẽ là một câu trả lời hoàn chỉnh.
yagmoth555
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.