Office 365에서 전체 SMTP 로그를 내보내는 방법


10

Office 365에서 SMTP 로그를 내보낼 수 있습니까? 어쩌면 powershell 또는 다른 방법으로도 가능합니다.

내 목표는 특정 도메인과주고받는 모든 메시지에 대한 전체 개요를 갖는 것입니다.


a complete overview of all messages send from and to a specific domain 아시다시피, 그런 것들이 일반적으로 "구름"에 갈 때 포기하는 것입니다. 이러한 종류의 전체 모니터링 및 로깅이 필요하거나 원한다면 클라우드 서비스가 실제로 원하는 것이 아닐 수도 있습니다.
HopelessN00b

3
희망이 없다고 생각하는 Office365에는 더 많은 것이 있습니다. :-)
ZEDA-NL

답변:


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사용하여 Exchange Online연결 의 정보를 사용하여 연결 을 처리하고 나머지 스크립트를 사용하여 파일을 가져 왔습니다.
Jason Massey

-1

모든 로그를 수집하기 위해 몇 줄을 약간 변경했습니다.

$OutputFile = "c:\temp\SMTPlog"

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

3
안녕하세요, 답변을 수정하여 세부 정보를 추가하거나 다른 답변에 대한 의견을 남기고 싶었습니다. 답변으로 남겨 두려면 전체 스크립트를 변경 사항에 붙여 넣고 기본 메모를 남겨 두는 것이 좋습니다. 다른 답변에 대해서는 완전한 답변이 될 것입니다.
yagmoth555
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.