Microsoft 365에서 사서함 감사 로그를 사용하는 방법

Microsoft 365에서는 사서함 감사 로그를 실행하여 사서함이 예기치 않게 업데이트된 시기 또는 사서함에서 항목이 누락되었는지 여부를 확인할 수 있습니다. 예를 들어 항목이 이동되거나 예기치 않게 또는 잘못 삭제된 경우 이 작업을 수행해야 할 수 있습니다.

참고: vNext 환경의 경우 기본적으로 사서함 감사 로그는 사용하도록 설정되지 않습니다. 사용자가 검색을 시작하려면 이 기능을 켜야 합니다.

사서함 감사 로그를 실행하고 확인하는 방법

사서함 감사 로깅을 사용하면 사용자가 비소유자와 관리자가 수행하는 작업에 대한 정보를 얻을 수 있습니다. 사서함 감사 로깅은 Windows 원격 PowerShell을 사용해야만 감사 보고 사서함 셀프 서비스 그룹의 구성원이 사용할 수 있습니다.

참고 항목

  • 기본적으로 소유자가 아닌 사서함 감사 로깅만 사용하도록 설정되고 소유자 사서함 감사 로깅은 사용하지 않도록 설정됩니다. 소유자 사서함 감사 로깅을 수행하여 특정 문제를 조사해야 하는 경우 2주 동안 일시적으로 프로세스를 사용하도록 설정할 수 있습니다.
  • 일부 조직에서는 사서함 감사 로깅을 사용할 수 없습니다. 이 경우 기능이 꺼집니다.

이 문제를 조사하려면 이 섹션의 1단계에서 제공하는 샘플 스크립트를 사용하여 Windows PowerShell 스크립트를 만들고 사용한 다음 검색을 사용자 지정합니다. 기본적으로 비소유자와 관리자가 수행하는 작업을 조사할 수 있습니다. 이 스크립트는 누락되었거나 예기치 않게 업데이트된 항목에 대한 보고서를 해결하는 데 도움이 되도록 간소화된 쉼표로 구분된 값(.csv) 파일로 콘텐츠를 내보냅니다.

Important

고객은 이 샘플 스크립트를 사용하는 것이 좋습니다. 스크립트는 특정 조사에 도움이 되도록 Microsoft Online Services에서 제공합니다. Microsoft Online Services 스크립트는 일반이며 모든 고객 환경에서 사용할 수 있어야 합니다. 스크립트를 실행할 때 오류가 발생하는 경우 스크립트의 콘텐츠를 예로 사용하여 특정 고객 환경에 맞게 사용자 지정된 스크립트를 만들어야 합니다. Microsoft Online Services는 Microsoft 365 고객에게 보증, 표현 또는 암시 없이 편의를 위해 스크립트를 제공합니다.

1단계: 스크립트 실행

스크립트를 실행하려면 다음 단계를 수행합니다.

  1. 메모장과 같은 텍스트 편집기를 열고 다음 코드를 파일에 복사합니다. 이 코드는 Microsoft Exchange Server의 일부인 명령을 사용합니다 search-mailboxAuditLog .

     param ([PARAMETER(Mandatory=$TRUE,ValueFromPipeline=$FALSE)]
    [string]$Mailbox,
    [PARAMETER(Mandatory=$TRUE,ValueFromPipeline=$FALSE)]
    [string]$StartDate,
    [PARAMETER(Mandatory=$TRUE,ValueFromPipeline=$FALSE)]
    [string]$EndDate,
    [PARAMETER(Mandatory=$FALSE,ValueFromPipeline=$FALSE)]
    [string]$Subject,
    [PARAMETER(Mandatory=$False,ValueFromPipeline=$FALSE)]
    [switch]$IncludeFolderBind,
    [PARAMETER(Mandatory=$False,ValueFromPipeline=$FALSE)]
    [switch]$ReturnObject)
    BEGIN {
      [string[]]$LogParameters = @('Operation', 'LogonUserDisplayName', 'LastAccessed', 'DestFolderPathName', 'FolderPathName', 'ClientInfoString', 'ClientIPAddress', 'ClientMachineName', 'ClientProcessName', 'ClientVersion', 'LogonType', 'MailboxResolvedOwnerName', 'OperationResult')
      }
      END {
        if ($ReturnObject)
        {return $SearchResults}
        elseif ($SearchResults.count -gt 0)
        {
        $Date = get-date -Format yyMMdd_HHmmss
        $OutFileName = "AuditLogResults$Date.csv"
        write-host
        write-host -fore green "Posting results to file: $OutfileName"
        $SearchResults | export-csv $OutFileName -notypeinformation -encoding UTF8
        }
        }
        PROCESS
        {
        write-host -fore green 'Searching Mailbox Audit Logs...'
        $SearchResults = @(search-mailboxAuditLog $Mailbox -StartDate $StartDate -EndDate $EndDate -LogonTypes Owner, Admin, Delegate -ShowDetails -resultsize 50000)
        write-host -fore green '$($SearchREsults.Count) Total entries Found'
        if (-not $IncludeFolderBind)
        {
        write-host -fore green 'Removing FolderBind operations.'
        $SearchResults = @($SearchResults | ? {$_.Operation -notlike 'FolderBind'})
        write-host -fore green 'Filtered to $($SearchREsults.Count) Entries'
        }
        $SearchResults = @($SearchResults | select ($LogParameters + @{Name='Subject';e={if (($_.SourceItems.Count -eq 0) -or ($_.SourceItems.Count -eq $null)){$_.ItemSubject} else {($_.SourceItems[0].SourceItemSubject).TrimStart(' ')}}},
        @{Name='CrossMailboxOp';e={if (@('SendAs','Create','Update') -contains $_.Operation) {'N/A'} else {$_.CrossMailboxOperation}}}))
        $LogParameters = @('Subject') + $LogParameters + @('CrossMailboxOp')
        If ($Subject -ne '' -and $Subject -ne $null)
        {
        write-host -fore green 'Searching for Subject: $Subject'
        $SearchResults = @($SearchResults | ? {$_.Subject -match $Subject -or $_.Subject -eq $Subject})
        write-host -fore green 'Filtered to $($SearchREsults.Count) Entries'
        }
        $SearchResults = @($SearchResults | select $LogParameters)
        }
    
  2. 파일 메뉴에서 다른 이름으로 저장을 클릭합니다.

  3. 파일 형식 상자에서 모든 파일을 선택합니다.

  4. 파일 이름 상자에 Run-MailboxAuditLogSearcher.ps1을 입력하고 저장을 선택합니다.

  5. Windows PowerShell을 열고 Windows 원격 PowerShell연결합니다.

  6. 스크립트를 저장한 폴더를 찾은 다음 스크립트를 실행합니다.

    .\Run-MailboxAuditLogSearcher.ps1
    

    참고 항목

    • 매개 변수 없이 스크립트를 실행하는 경우 다음 기본 매개 변수를 입력하라는 메시지가 표시됩니다.
      • 사서함
      • StartDate
      • EndDate
    • 현재 날짜의 항목을 검색하려면 프롬프트 창의 종료 날짜 값에 1일을 추가합니다. 예를 들어 현재 날짜가 2017년 3월 14일이고 검색에 현재 날짜를 포함하려는 경우 종료 날짜로 2017년 3월 15일을 입력합니다.

Microsoft 365에서는 사서함 감사 로깅 항목이 사서함에 90일 동안 보존됩니다. 검색의 시작 날짜와 종료 날짜를 표시하라는 메시지가 표시됩니다. 몇 가지 선택적 매개 변수를 사용하여 검색을 사용자 지정할 수 있습니다. 이러한 매개 변수에 대한 설명은 "추가 정보" 섹션을 참조하세요.

스크립트가 실행된 후 항목이 발견되면 다음 메시지와 유사한 메시지가 표시됩니다.

사서함 감사 로그 검색 중...
검색된 총 항목 11개
FolderBind 작업 제거
1개 항목으로 필터링됨

파일에 결과 게시: AuditLogResults121024_142419.csv

스크립트를 실행한 후의 메시지 스크린샷

이 예제 메시지는 검색 프로세스에서 11개의 항목을 발견했음을 나타냅니다. 기본적으로 FolderBind 항목은 필터링되며 다음과 같은 작업 유형이 유지됩니다.

  • 복사
  • 생성
  • HardDelete
  • MessageBind
  • 이동
  • MoveToDeletedItems
  • SendAs
  • SendOnBehalf
  • SoftDelete
  • 엽데이트

참고 항목

FolderBind 작업은 소유자가 아닌 사용자가 사서함에 액세스하는 시간을 나타냅니다. 가장 일반적인 작업입니다. 업데이트되거나 삭제된 항목을 조사할 때 FolderBind 작업을 볼 필요가 없습니다.

.csv 파일의 출력을 검토합니다. 가장 유용한 열이 내보내지고 이러한 열 중 일부가 병합되어 출력을 더 쉽게 검토할 수 있습니다. 내보낸 열에 대한 자세한 내용은 '추가 정보' 섹션을 참조하세요.

소유자 사서함 감사 로깅

사서함 감사 로깅은 기본적으로 모든 조직에 대해 설정됩니다. 기본적으로 사서함 감사를 사용하도록 설정하는 주요 이점 중 하나는 감사된 사서함 작업을 관리할 필요가 없다는 것입니다. Microsoft는 이러한 작업을 관리하며 릴리스할 때 기본적으로 감사할 새 사서함 작업을 자동으로 추가합니다.

그러나 조직에서는 사용자 사서함 및 공유 사서함에 대해 다른 사서함 작업 집합을 감사해야 할 수 있습니다. 각 로그인 유형에 대해 감사되는 사서함 작업을 변경하는 방법 및 Microsoft 관리 기본 작업으로 되돌리는 방법에 대한 자세한 내용은 기본적으로 기록된 사서함 작업 변경 또는 복원을 참조하세요.

자세한 정보

선택적 스크립트 매개 변수

다음 목록에서는 스크립트와 함께 사용될 때 다른 결과를 생성하는 선택적 매개 변수에 대해 Run-MailboxAuditLogSearcher 설명합니다.

  • IncludeFolderBind: FolderBind 작업이 출력에서 필터링되지 않도록 합니다. FolderBind 정보를 사용하여 사서함 액세스 문제를 조사할 수 있습니다.

    예를 들어 다음 cmdlet은 "테스트 사용자 1" 사서함을 검색하고 모든 작업을 포함합니다.

    .\Run-MailboxAuditLogSearcher.ps1 -IncludeFolderBind -Mailbox "<Test User 1gt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    
  • 제목: 해당 항목에 대해 수행되는 작업에 대한 검색을 제한하기 위해 항목의 제목을 지정할 수 있습니다.

    예를 들어 다음 cmdlet은 제목이 'Good News'로 설정된 항목을 제외한 모든 출력을 필터링합니다.

    .\Run-MailboxAuditLogSearcher.ps1 -Subject "<Good News>" -Mailbox "<test1@contoso.comgt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    
  • ReturnObject: 결과가 화면에 표시되도록 합니다(하지만 .csv 파일로 내보내지 않음).

    예를 들어 다음 cmdlet은 화면에 출력을 표시합니다.

    .\Run-MailboxAuditLogSearcher.ps1 -ReturnObject -Mailbox "<Test User 1gt;" -StartDate "<04/10/17gt;" -EndDate "<04/27/17gt;&quot
    

.csv 파일에서 내보낸 열

.csv 파일의 가장 유용한 열을 내보냅니다. 이러한 열 중 일부는 출력을 더 쉽게 검토할 수 있도록 병합됩니다. 다음 표에서는 내보낸 열을 나열합니다.

설명
주제 항목의 제목
연산 항목에 대해 수행되는 작업
LogonUserDisplayName 로그온한 사용자의 표시 이름
LastAccessed 작업이 수행된 시간
DestFolderPathName 이동 작업의 대상 폴더
FolderPathName 폴더 경로
ClientInfoString 작업을 수행하는 클라이언트에 대한 세부 정보
LastAccessed 클라이언트 컴퓨터의 IP 주소
ClientMachineName 클라이언트 컴퓨터의 이름
ClientProcessName 클라이언트 애플리케이션 프로세스의 이름
ClientVersion 클라이언트 애플리케이션의 버전
LogonType Note 로그온 형식 작업을

수행하는 사용자의 로그온 유형에는 다음
이 포함됩니다. - 소유자가
아닌 대리자 - 관리자
- 사서함 소유자(기본적으로 기록되지 않음)
MailboxResolvedOwnerName 확인된 사서함 사용자

이름 확인 됨 이름은 Domain\SamAccountName 형식
입니다.
OperationResult 작업

상태 메모 작업 결과에는 다음
이 포함됩니다. - 실패
- PartiallySucceeded
- 성공
CrossMailboxOperation 기록된 작업이 사서함 간 작업인지 여부에 대한 정보(예: 사서함 간에 메시지 복사 또는 이동)

사서함 감사 로깅에 대한 자세한 정보

  • Search-MailboxAuditLog cmdlet은 1단계의 샘플 스크립트에서 단일 사서함을 동기적으로 검색하는 데 사용됩니다. Windows 원격 PowerShell에서 cmdlet을 실행하여 이 작업을 수행할 수도 있습니다.

    cmdlet에 대한 자세한 내용은 다음 TechNet 문서로 이동하세요.

    Search-MailboxAuditLog

  • 하나 이상의 사서함을 비동기적으로 검색할 수 있습니다. 이렇게 하려면 Windows 원격 PowerShell에서 다음 cmdlet을 실행합니다.

    New-MailboxAuditLogSearch
    

    이 cmdlet에 대한 자세한 내용은 다음 문서를 참조하세요.

    New-MailboxAuditLogSearch

    기본 사서함 감사 로깅 항목에 대한 자세한 내용은 다음 문서의 "사서함 감사 로그 항목" 섹션으로 이동합니다.

    Exchange 2016의 사서함 감사 로깅