Exchange Onlineでメッセージのトラッキング

投稿者: | 2020年6月4日

Office 365のWebコンソールからExchange Onlineを呼び出してメッセージの追跡はできるのだけど、表示された結果をテキストに書き出す方法がわからなかったのでPowerShellでファイルに書き出そうとしたのだけど、予想以上に準備に手間取った。

以下、大まかな手順

Exchange Online PowerShell V2 moduleをインストールする
そのためには、Windows Management Framework 5.1が必要。
そうしないと Install-Module コマンドが認識されない。
それからExchange Online PowerShell V2をインストールする前に、 NuGet providerをインストールして、続いてPowerShellGetをインストールしておく必要があるらしい。
ところが、NuGetをインストールができない問題も発生。TLS1.2をセットしないといけないらしい。

と、いうことで整理すると、以下の通り。

  1. ウチのWindows Server 2012R2はWindows Management Framework 5.1が入っていないようなのでこのサーバーは使わない。
    理由は、Management Framework のバージョンを上げたためにSBS2011の一部の動作がおかしくなったことがあるのでManagement Frameworkには余り手を触れたくないから。
  2. Windows Server 2016 StdのPowerShellで Install-Module を走らせたら認識されたのでこのサーバーで操作することにする。
  3. NuGet providerをインストールする前に、TLS 1.2をセットする。
    PowerShellはadministrator権限で実行させておく。PowerShell コマンドライン: [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocoltype]::Tls12 <enter>
  4. NuGet のインストールPowerShell コマンドライン: Install-PackageProvider -Name NuGet -Force <enter>
  5. PowerShellGet のインストール&アップデートPowerShell コマンドライン:Install-Module -Name PowerShellGet -Force <enter>
    PowerShell コマンドライン:Update-Module -Name PowerShellGet <enter>
  6. winrm Basic = true の確認Command Prompt コマンドライン: winrm get winrm/config/client/auth <enter>
    で、 Basic = true が表示されていたらOK
  7. PowerShellで Set-ExecutionPolicy RemoteSigned を実行PowerShellはAdministrator権限で開く。
    YesとかNoとか聞いてくるので、Yesを選択しておく。
  8. Exchange Online PowerShell V2 のインストール & アップデートPowerShell コマンドライン: Install-Module -Name ExchangeOnlineManagement <enter>
    PowerShell コマンドライン: Update-Module -Name ExchangeOnlineManagement <enter>
  9. PowerShellをExchange Online (Office 365)に接続PowerShell コマンドライン: $UserCredential = Get-Credential <enter>
    Office 365の管理者アカウント、パスワードを入力PowerShell コマンドライン: $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection <enter>PowerShell コマンドライン: Import-PSSession $Session -DisableNameChecking <enter>
  10. Get-MessageTrace の実行PowerShell コマンドライン例: Get-MessageTrace -SenderAddress sender@domain.com -StartDate 06/04/2020 -EndDate 06/05/2020
    PowerShell コマンドライン例: Get-MessageTrace -MessageId “abcdefg-hijklmn@opqrstuv.prod.outlook.com”
  11. 終了処理PowerShell コマンドライン:Remove-PSSession $Session <enter>

と、まあ長い道のりでした。

参考:
https://docs.microsoft.com/en-us/powershell/module/exchange/get-messagetrace?view=exchange-ps
https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/exchange-online-powershell-v2/exchange-online-powershell-v2?view=exchange-ps
https://docs.microsoft.com/en-us/powershell/scripting/gallery/installing-psget?view=powershell-7
https://answers.microsoft.com/en-us/windows/forum/windows_7-performance/trying-to-install-program-using-powershell-and/4c3ac2b2-ebd4-4b2a-a673-e283827da143
https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell?redirectedfrom=MSDN&view=exchange-ps

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA



The reCAPTCHA verification period has expired. Please reload the page.